728x90
반응형
앱 배포시,
앱 용량을 줄이고 취약점을 최대한 노출시키지 않기위해서 난독화 과정을거친다.
proguard는 난독화 하는 방법 중 하나이다.
난독화를 하는 과정에서 class 등의 명칭 또한 바뀌고, 특정 클래스에서 사용하는 메소드 등이 난독화 과정을 거치게 되면서 동작이 되지 않는 오류가 발생한다.
특히나 axios나 네트워크와 관련된 패키지들에서 난독화 과정을 거치면서 이런 문제가 나타나서
디버깅에서는 앱이 동작하고 네트워크 요청에 문제가 없는데,
배포용 으로 빌드한 앱에서는 네트워크가 동작하지 않는 문제가 생긴다.
이를 위해서
android/app/proguard-rules.pro에 다음과 같이 난독화에서 제외시켜줄 코드들을 포함하였다.
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter
# https://github.com/square/okhttp/pull/6792
-dontwarn org.bouncycastle.jsse.**
-dontwarn org.conscrypt.*
-dontwarn org.openjsse.**
# Keep your model classes
-keep class com.gnuboard_react_native.model.** { *; }
# Axios specific rules
-keep class com.github.axioscode.** { *; }
-keepclassmembers class com.github.axioscode.** { *; }
-keepattributes Signature
-keepattributes *Annotation*
# Keep Axios response/request classes
-keep class org.apache.commons.codec.** { *; }
-keep class org.apache.http.** { *; }
-dontwarn org.apache.**
-dontwarn android.net.http.**
-dontwarn javax.annotation.**
# General networking rules
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
-dontwarn okio.**
# React Native rules
-keep class com.facebook.react.modules.network.** { *; }
-keep class com.facebook.react.** { *; }
# Keep your app's network-related classes
-keep class com.gnuboard_react_native.** { *; }
상황에 맞게 추가하거나 필요없는 부분은 제외하면서 사용하면 될 듯 하다.
참조글
https://imcreator.tistory.com/101
https://nezhitsya.tistory.com/26
https://devnuts.tistory.com/m/252
예시커밋
https://github.com/Junanjunan/gnuboard_react_native/commit/076843538f17603c2c65084a2c1dd13a5fc0535b
728x90
반응형