APK 내보내기 중에 proguard를 사용하는 경우 간단한 해결 방법을 제안하고 싶습니다.
Proguard는 릴리스 모드에서 특정 기능에 대한 호출을 제거하는 방법을 제공합니다. 에서 다음 설정을 사용하여 디버깅 로그에 대한 모든 호출을 제거 할 수 있습니다 proguard-project.txt
.
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
그리고 project.properties
.
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
이를 통해 @Jeremyfa가 가리키는 디버그 로그로 전달되는 불필요한 문자열 계산에 대해 걱정할 필요가 없습니다. 릴리스 빌드에서 계산이 제거되었습니다.
따라서 BuildConfig.DEBUG의 해결 방법은 다음과 같은 proguard의 동일한 기능을 사용합니다.
public class DebugConfig {
private static boolean debug = false;
static {
setDebug(); // This line will be removed by proguard in release.
}
private static void setDebug() {
debug = true;
}
public static boolean isDebug() {
return debug;
}
}
그리고 proguard-project.txt
.
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
이것은 Build Automatically
빌더의 개별 IDE 설정에 의존하지 않고 개발자간에 공유되는 커밋 된 파일로 유지되기 때문에 옵션 을 비활성화하는 데 사용하는 것을 선호합니다 .