-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Setting] 난독화 #233
base: develop
Are you sure you want to change the base?
[Setting] 난독화 #233
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -23,3 +23,58 @@ | |||||||||||||||||||||||||||||||||||||||||
# https://developers.kakao.com/docs/latest/en/getting-started/sdk-android#configure-for-shrinking-and-obfuscation-(optional) | ||||||||||||||||||||||||||||||||||||||||||
-keep class com.kakao.sdk.**.model.* { <fields>; } | ||||||||||||||||||||||||||||||||||||||||||
-keep class * extends com.google.gson.TypeAdapter | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
# Retrofit2 인터페이스와 데이터 모델 클래스 보존 | ||||||||||||||||||||||||||||||||||||||||||
-keep interface com.eatssu.android.data.service.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
-keep class com.eatssu.android.data.dto.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
-dontwarn retrofit2.** | ||||||||||||||||||||||||||||||||||||||||||
-dontwarn okhttp3.** | ||||||||||||||||||||||||||||||||||||||||||
-keepattributes Signature | ||||||||||||||||||||||||||||||||||||||||||
-keepattributes Exceptions | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+27
to
+34
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Signature와 Exceptions 속성 규칙을 더 구체적으로 지정하세요. 현재 구성은 기본적인 보호를 제공하지만, Retrofit 관련 속성을 더 명확하게 지정하면 좋을 것 같습니다. 다음과 같이 수정하는 것을 고려해보세요: -keepattributes Signature
-keepattributes Exceptions
+-keepattributes InnerClasses
+-keepattributes EnclosingMethod 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||
# OkHttp 보존 | ||||||||||||||||||||||||||||||||||||||||||
-keep class okhttp3.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
-keep interface okhttp3.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
-dontwarn okhttp3.** | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+35
to
+39
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 중복된 OkHttp 경고 무시 규칙이 있습니다.
다음과 같이 중복된 규칙을 제거하세요: # OkHttp 보존
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
--dontwarn okhttp3.** 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||
# Hilt 의존성 주입 관련 클래스 보존 | ||||||||||||||||||||||||||||||||||||||||||
-keep class dagger.hilt.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
-keep class * extends dagger.hilt.EntryPoint | ||||||||||||||||||||||||||||||||||||||||||
-keep class * extends dagger.hilt.InstallIn | ||||||||||||||||||||||||||||||||||||||||||
-keep class * extends dagger.hilt.components.SingletonComponent | ||||||||||||||||||||||||||||||||||||||||||
#-keep class * extends dagger.hilt.components.ActivityComponent | ||||||||||||||||||||||||||||||||||||||||||
-dontwarn dagger.hilt.** | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
# Firebase Analytics 관련 클래스 보존 | ||||||||||||||||||||||||||||||||||||||||||
-keep class com.google.firebase.analytics.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
#-keepclassmembers class * { | ||||||||||||||||||||||||||||||||||||||||||
# @com.google.firebase.analytics.FirebaseEvent *; | ||||||||||||||||||||||||||||||||||||||||||
#} | ||||||||||||||||||||||||||||||||||||||||||
-dontwarn com.google.firebase.analytics.** | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
# Gson 보존 (필드명 직렬화/역직렬화 보호) | ||||||||||||||||||||||||||||||||||||||||||
-keep class com.google.gson.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
-keepattributes Signature | ||||||||||||||||||||||||||||||||||||||||||
-keepattributes *Annotation* | ||||||||||||||||||||||||||||||||||||||||||
-dontwarn com.google.gson.** | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+55
to
+60
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 중복된 Signature 속성 규칙이 있습니다.
다음과 같이 중복된 규칙을 제거하세요: # Gson 보존 (필드명 직렬화/역직렬화 보호)
-keep class com.google.gson.** { *; }
--keepattributes Signature
-keepattributes *Annotation*
-dontwarn com.google.gson.** 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||
# Coroutines 관련 클래스 보존 | ||||||||||||||||||||||||||||||||||||||||||
-keep class kotlinx.coroutines.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
-keepclassmembers class kotlinx.coroutines.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
-dontwarn kotlinx.coroutines.** | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
# AndroidX 관련 보존 | ||||||||||||||||||||||||||||||||||||||||||
-keep class androidx.** { *; } | ||||||||||||||||||||||||||||||||||||||||||
-dontwarn androidx.** | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+66
to
+69
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion AndroidX 규칙을 더 구체적으로 지정하는 것이 좋습니다. 현재 모든 AndroidX 클래스를 보존하고 있어 APK 크기가 불필요하게 커질 수 있습니다. 실제로 사용하는 AndroidX 컴포넌트만 보존하도록 규칙을 수정하는 것을 추천합니다. 예시: -# AndroidX 관련 보존
--keep class androidx.** { *; }
--dontwarn androidx.**
+# AndroidX 필수 컴포넌트 보존
+-keep class androidx.core.** { *; }
+-keep class androidx.appcompat.** { *; }
+-keep class androidx.fragment.app.** { *; }
+-dontwarn androidx.** 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||
# Retrofit의 어노테이션 보존 | ||||||||||||||||||||||||||||||||||||||||||
-keepattributes RuntimeVisibleAnnotations | ||||||||||||||||||||||||||||||||||||||||||
-keepattributes RuntimeVisibleParameterAnnotations | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
# 일반적인 자바 어노테이션 보존 | ||||||||||||||||||||||||||||||||||||||||||
-keepattributes *Annotation* | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
# 모든 직렬화된 클래스 보존 | ||||||||||||||||||||||||||||||||||||||||||
-keepclassmembers class * { | ||||||||||||||||||||||||||||||||||||||||||
@com.google.gson.annotations.SerializedName <fields>; | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+70
to
+80
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion 중복된 어노테이션 속성 규칙을 통합하세요.
다음과 같이 어노테이션 관련 규칙을 통합하세요: +# 어노테이션 관련 규칙
+-keepattributes *Annotation*
+-keepattributes RuntimeVisibleAnnotations
+-keepattributes RuntimeVisibleParameterAnnotations
# Retrofit의 어노테이션 보존
--keepattributes RuntimeVisibleAnnotations
--keepattributes RuntimeVisibleParameterAnnotations
# 일반적인 자바 어노테이션 보존
--keepattributes *Annotation* 📝 Committable suggestion
Suggested change
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
ProGuard 규칙이 불완전합니다. 추가 규칙이 필요합니다.
현재 proguard-rules.pro 파일에는 Kakao SDK에 대한 규칙만 포함되어 있습니다. 다음 라이브러리들에 대한 ProGuard 규칙이 누락되어 있습니다:
특히 다음 규칙들의 추가가 필요합니다:
🔗 Analysis chain
ProGuard 규칙 검증이 필요합니다.
현재 프로젝트에서 사용 중인 주요 라이브러리들에 대한 ProGuard 규칙이 필요합니다:
다음 사항들을 확인해주세요:
proguard-rules.pro
파일에 필요한 keep 규칙들이 모두 포함되어 있는지 검토🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
Length of output: 971
Script:
Length of output: 8422