[AOS] Android Proguard μ€μ
λλ ννμ§ μμΌλ©΄ λΌμ΄λΈλ¬λ¦¬ λμ»΄νμΌ μ μ½λκ° λ ΈμΆλκ±°λ μ.
μλλ‘μ΄λ κ°λ°μ νλ€λ³΄λ©΄ λ€λ€ ν λ²μ―€ build.gradleμμ μλ μ½λλ
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
proguard-rules.proλΌλ νμΌμ λ³Έ μ μμ κ²μ΄λ€.
μ무λλ 곡λΆν λμλ, νλΆ νλ‘μ νΈλ₯Ό μ§νν λ λλ νν νμκ° ν¬κ² μκΈ° λλ¬Έμ μ¬μ©ν΄ λ³Έ κ²½νμ΄ μ μ κ²μ΄λ€. (λ μμλ μ¬μ©ν΄ λ³Έ μ μ΄ μμλ€.)
νμ§λ§ μ€λ¬΄μμλ λ€λ₯Έ κ³³μΌλ‘ λΌμ΄λΈλ¬λ¦¬λ μ΄ν리μΌμ΄μ μ λ°°ν¬ν λ μ½λ μ μΆμ λ°©μ§νκΈ° μν΄ νμμ μΌλ‘ μ¬μ©νλ€.
Proguard μ€μ νκΈ°
proguardλ₯Ό μ¬μ©νκΈ° μν΄μλ build.gradleμ μ½κ° μμ ν΄μ£Όμ΄μΌ νλ€.
μμμ λ³Έ app μμ€ build.gradleμ μ½λμμ minifyEnabled falseλ₯Ό trueλ‘ λ³κ²½ν΄μΌ μ μ©λλ€.
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
νμ§λ§ μ΄ μ€μ λ buildTypesκ° release λ²μ μΌ κ²½μ°μλ§ μ μ©λλ€.
debug λ²μ μΌ κ²½μ°μλ μ μ©νκ³ μΆλ€λ©΄ μλμ κ°μ΄ build typeμ μΆκ°ν΄μ€λ€.
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
λΉλ νμ μ μλλ‘μ΄λ μ€νλμ€ νλ¨ Build Variants νμμ μ€μ κ°λ₯νλ€.
μ΄λ κ² κ°λ¨νκ² λλλ©΄ μ’κ² μ§λ§... proguard μ μ© μ μΈ μ€μ μ΄ νμνλ€.
λΌμ΄λΈλ¬λ¦¬ νλ‘μ νΈμ κ²½μ°, proguardλ₯Ό μ΄μ©ν΄ μ½λ λλ ν ν λ°°ν¬νλ©΄ λ€λ₯Έ νλ‘μ νΈμμ ν΄λΉ λΌμ΄λΈλ¬λ¦¬μ ν¨μλ₯Ό κ°μ Έμ μ¬μ©ν μ μκ² λλ€.
λ°λΌμ λ€λ₯Έ νλ‘μ νΈμμ λμ΄μ μ¬μ©ν΄μΌνλ νμ ν¨μλ μΈν°νμ΄μ€λ λλ ν μ μΈ μ€μ μ ν΄μ£Όμ΄μΌ νλ€.
ν΄λΉ μ€μ μ μμμ λ³Έ proguard-rules.pro νμΌμμ μ€μ κ°λ₯νλ€.
λλ ν μμΈμ²λ¦¬
λͺ¨λ μΈν°νμ΄μ€ λλ ν μμΈμ²λ¦¬
- keep interface com.νλ‘μ νΈ.ν¨ν€μ§λͺ
.* { *; }
λͺ¨λ ν΄λμ€ λλ ν μμΈμ²λ¦¬
- keep class com.νλ‘μ νΈ.ν¨ν€μ§λͺ
.* { *; }
λλ νν λΌμ΄λΈλ¬λ¦¬
- injars libs/λΌμ΄λΈλ¬λ¦¬.jar // or aar, ... etc
λλ νν νμ μλ λΌμ΄λΈλ¬λ¦¬
- libraryjars libs/λΌμ΄λΈλ¬λ¦¬.jar // or aar, ... etc
Proguard 곡μ λ¬Έμ
ProGuard Manual: Usage | Guardsquare
ProGuard documentation about usage, configuration and options.
www.guardsquare.com
λΌμ΄λΈλ¬λ¦¬μ κ·λͺ¨κ° ν΄μλ‘ λλ ν μμΈμ€μ ν λΉλλ λΌμ΄λΈλ¬λ¦¬λ‘ λͺ¨λ μμ μ κ²½μ°μ μλ₯Ό ν μ€νΈ ν΄λ³΄λ κ²μ΄ μ€μνλ€.
μμμΉ λͺ»ν ν΄λμ€κ° λλ νλμ΄ μ€λ₯κ° λ°μνλ κ²½μ°κ° λ§κΈ° λλ¬Έμ μ€λ κΈ°κ°, κ·Έλ¦¬κ³ λ€μν ν μ€νΈλ₯Ό μνν΄μΌ νλ€.
νμ΄ν ...!