Android/Java

안드로이드 Proguard 설정

easy-1 2021. 6. 10. 15:54

<개요>

- 소스 코드 난독화

- 불필요한 리소스 축소


<적용 방법>

1. 디버그와 릴리즈 구분하기 위해 proguard-debug.pro 파일 생성

디버그 모드에서는 난독화 진행하지 않음

( 이유 : 디버그 모드도 난독화를 하게되면 클래스명, 라인 등 이 제거되어 디버그가 어려워짐 )

# Begin: Debug ProGuard rules

-dontobfuscate
-keepattributes SoureFile,LineNumberTable

# End: Debug ProGuard rules

2. 디버그와 릴리즈 구분하여 프로가드 설정

    buildTypes {
        debug {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            // 프로가드 설정
            proguardFile 'proguard-rules.pro'
            // 디버그 프로가드 설정
            proguardFile 'proguard-debug.pro'
        }
        release {
            minifyEnabled true // 프로가드 활성화

            proguardFile getDefaultProguardFile('proguard-android.txt')
            proguardFile 'proguard-rules.pro'
            
            ....
        }

3. 프로가드 설정으로 인하여 문제가 되는 부분은

proguard-rules.pro 파일에서 따로 설정

ex ) firebase-database 사용 시 proguard-rules.pro 에 해당 코드 추가

 

-keepclassmembers class com.패키지경로.**{ *; }

 


<출처>

https://iw90.tistory.com/298