본문 바로가기
Android 개발/PlayStore & 출시

PlayStore 출시전에 Log 제거하기

by Developer88 2017. 7. 13.
반응형

안드로이드 앱을 다 만들고, 출시를 하려고 하는데 잊지말아야 하는 것이 있습니다.

바로 Log를 제거하는 것인데요.


이것을 제거하지 않은 앱의 로그는, 안드로이드 스튜디오의 Logcat에서 볼 수 있게 되는데요.

민감한 정보나, 네트워크상의 중요한 정보들이 나오면 않되므로,

중요한 정보와 관련된 Log는 꼭 제거해야 합니다.


오늘은 직접 모든 줄을 찾아서 제거하지 않고 안드로이드 스튜디오를 이용해서 제거하는 방법에 대해서 정리해 보도록 하겠습니다.



1. ProguardFiles 설정


제일 먼저 할 것은, minifyEnabled 를 true로 해서, proguard를 사용할 수 있도록 하구요.

'proguard-android.txt' 로 되어있는 getDefaultProguardFile을,

'proguard-android-optimize.txt' 로 변경해 줍니다.


기존의 getDefaultProguardFile'(proguard-android.txt') 가 tools/proguard/ 폴더에서 기본 ProGuard 설정을 가져오는 역할을 했었는데요.


더 많은 코드 축소를 통해서 APK의 크기를 줄이고 더 빨리 실행되게 하는 경우에 proguard-android-optimize.txt 파일을 사용하는데요.

바이트코드 수준에서 분석을 수행하는 다른 최적화기능도 포함되어 있습니다.

바로 이 파일로 바꾸어 주어서 log파일까지도 제거되도록 하는 것인데요.



buildTypes {

        release {

            minifyEnabled true

            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

        }

    }


물론 위의 설정 만으로는 끝나지 않습니다.

한 단계가 더 남아있는데요, 아래에서 정리하겠습니다.



2. proguard-rules.pro 수정


안드로이드 스튜디오에서, proguard-rules.pro 파일을 navigation창에서 찾아서 열구요.




아래와 같이 추가해 주면 됩니다.




-assumenosideeffects class android.util.Log {

    public static boolean isLoggable(java.lang.String, int);

    public static int v(...);

    public static int i(...);

    public static int w(...);

    public static int d(...);

    public static int e(...);

}


위의 부분을 추가하고나서, 

Build>Generate Signed APK를 해주면 로그가 제거된 빌드를 얻을 수 있습니다.

(Generate Signed APK와 관련한 구체적인 사항은 이글에서는 다루지 않겠습니다~)

받은 빌드를, Google PlayStore에 제출해 주면,

로그가 다른 개발자에게 노출되는 일을 막을 수 있게 됩니다.

728x90

댓글