ตาม Google ฉันจะต้อง " ปิดการใช้งานการโทรไปยังวิธีการบันทึกในรหัสที่มา " ก่อนที่จะเผยแพร่แอพ Android ของฉันไปยัง Google Play แยกจากส่วนที่ 3 ของรายการตรวจสอบสิ่งพิมพ์ :
ตรวจสอบให้แน่ใจว่าคุณปิดใช้งานการบันทึกและปิดใช้งานตัวเลือกการแก้ไขข้อบกพร่องก่อนที่คุณจะสร้างแอปพลิเคชันของคุณสำหรับการเปิดตัว คุณสามารถปิดใช้งานการบันทึกได้โดยลบการเรียกไปยังวิธีการบันทึกในไฟล์ต้นฉบับของคุณ
โครงการโอเพ่นซอร์สของฉันมีขนาดใหญ่และเป็นเรื่องยากที่จะทำด้วยตนเองทุกครั้งที่ฉันปล่อย นอกจากนี้การลบบรรทัดบันทึกอาจมีความยุ่งยากเช่น:
if(condition)
Log.d(LOG_TAG, "Something");
data.load();
data.show();
หากฉันแสดงความคิดเห็นในบรรทัด Log เงื่อนไขจะมีผลกับบรรทัดถัดไปและโอกาสในการโหลด () จะไม่ถูกเรียก สถานการณ์เช่นนี้หายากพอที่ฉันสามารถตัดสินใจได้หรือไม่
ดังนั้นมีวิธีระดับซอร์สโค้ดที่ดีกว่าในการทำเช่นนั้น? หรือบางทีไวยากรณ์ ProGuard ที่ชาญฉลาดเพื่อลบบรรทัดบันทึกทั้งหมดอย่างมีประสิทธิภาพ แต่ปลอดภัย
sed 's_^\(\s*Log\.\)_;//'`date|tr -s \ -`'\1_g'
แทน