마켓에 애플리케이션을 릴리즈하기 전에 해야할 일 중 하나는 로그를 제거하는 작업입니다.
소스코드를 수정하지 않고 릴리즈 빌드할때 Proguard를 이용해 로그(android.util.Log
) 메서드 호출을 간단하게 제거할 수 있습니다.
build.gradle에서 다음과 같이 릴리즈 빌드할때 Proguard를 적용하도록 정의해 줍니다.
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
}
}
그리고 proguard-rules.txt를 아래와 같이 수정해 줍니다.
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
이렇게 설정하고 gradle assembleRelease
로 빌드하면, Log.d()
, Log.v()
호출은 제거됩니다. (리턴값을 참조하지 않는다면)
중요한 포인트는 -assumenosideeffects
옵션은 optimize 단계를 거쳐야만 적용이 된다는 점입니다. 때문에 proguard-android.txt가 아닌 proguard-android-optimize.txt를 사용하도록 설정해야 합니다.
이 파일들은 안드로이드 SDK의 tools/proguard
디렉토리에 위치하고 있습니다.