-
[AOS] Android Proguard μ€μ 2023. 2. 11. 13:14λ°μνπ±λΌμ΄λΈλ¬λ¦¬ λ°°ν¬ μ μ μ½λ λλ ν μ€μ λΆνλλ €μ!
λλ ννμ§ μμΌλ©΄ λΌμ΄λΈλ¬λ¦¬ λμ»΄νμΌ μ μ½λκ° λ ΈμΆλκ±°λ μ.λλ νλ μ΄λ»κ² νλ©΄ λλ건κ°μ...?πΆπ±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 곡μ λ¬Έμ
λΌμ΄λΈλ¬λ¦¬μ κ·λͺ¨κ° ν΄μλ‘ λλ ν μμΈμ€μ ν λΉλλ λΌμ΄λΈλ¬λ¦¬λ‘ λͺ¨λ μμ μ κ²½μ°μ μλ₯Ό ν μ€νΈ ν΄λ³΄λ κ²μ΄ μ€μνλ€.
μμμΉ λͺ»ν ν΄λμ€κ° λλ νλμ΄ μ€λ₯κ° λ°μνλ κ²½μ°κ° λ§κΈ° λλ¬Έμ μ€λ κΈ°κ°, κ·Έλ¦¬κ³ λ€μν ν μ€νΈλ₯Ό μνν΄μΌ νλ€.
νμ΄ν ...!
λ°μν'π° Android π > π λΌμ΄λΈλ¬λ¦¬' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[AOS] AAR to JAR (0) 2022.10.22 [AOS] μλλ‘μ΄λ λΌμ΄λΈλ¬λ¦¬ κ°λ°νκΈ° 2 (1) 2022.10.03 [AOS] μλλ‘μ΄λ λΌμ΄λΈλ¬λ¦¬ κ°λ°νκΈ° 1 (2) 2022.10.02