unioil-loyalty-rn-app/android/app/proguard-rules.pro

183 lines
6.0 KiB
Prolog

# 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
# Keep MainApplication class to prevent crashes
-keep class com.project.yondu.unioilloyaltyapp.MainApplication { *; }
-keep class com.facebook.react.ReactNativeHost { *; }
# Add any project specific keep options here:
-keep class com.facebook.react.turbomodule.** { *; }
# Keep React Native core classes
-keep class com.facebook.react.** { *; }
-keep class com.facebook.jni.** { *; }
# Additional rules for React Native 0.72.5
-keep class com.facebook.react.turbomodule.core.** { *; }
-keep class com.facebook.react.bridgeless.** { *; }
-keep class com.facebook.react.runtime.** { *; }
-keep class com.facebook.react.defaults.** { *; }
-keep class com.facebook.react.reactnativejni.** { *; }
# Keep SSL Certificate Pinning
-keep class okhttp3.CertificatePinner { *; }
-keep class okhttp3.CertificatePinner$* { *; }
-keep class okhttp3.internal.tls.** { *; }
-keep class okhttp3.internal.connection.** { *; }
-keep class okhttp3.internal.http.** { *; }
-keep class okhttp3.internal.platform.** { *; }
# Keep OkHttp classes - Enhanced for newer versions
-keepattributes Signature
-keepattributes *Annotation*
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**
-dontwarn org.conscrypt.**
-dontwarn org.bouncycastle.**
-dontwarn org.openjsse.**
# Keep Retrofit classes
-keep class retrofit2.** { *; }
-keepattributes Exceptions
-dontwarn retrofit2.**
-keepclasseswithmembers class * {
@retrofit2.http.* <methods>;
}
# Keep Gson (if used)
-keep class com.google.gson.** { *; }
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
-dontwarn com.google.gson.**
# Keep Jackson (if used)
-keep class com.fasterxml.jackson.** { *; }
-dontwarn com.fasterxml.jackson.**
# Keep Moshi (if used)
-keep class com.squareup.moshi.** { *; }
-dontwarn com.squareup.moshi.**
# For Native Stack - React Navigation
-keep class com.swmansion.** { *; }
-dontwarn com.swmansion.**
# Keep ReactNative Gesture Handler
-keep class com.swmansion.gesturehandler.** { *; }
-dontwarn com.swmansion.gesturehandler.**
# Keep Reanimated (if used)
-keep class com.swmansion.reanimated.** { *; }
-dontwarn com.swmansion.reanimated.**
# Keep React Native async storage (if used)
-keep class com.reactnativecommunity.asyncstorage.** { *; }
-dontwarn com.reactnativecommunity.asyncstorage.**
# Keep JSON serialization classes
-keepclassmembers class * {
@com.google.gson.annotations.SerializedName <fields>;
}
# Keep annotations
-keepattributes *Annotation*
# Don't strip native method names (important for JNI)
-keepclasseswithmembers class * {
native <methods>;
}
# Keep SSL classes
-keep class javax.net.ssl.** { *; }
-keep class org.apache.http.** { *; }
-dontwarn javax.net.ssl.**
-dontwarn org.apache.http.**
# Keep all @Keep annotated classes
-keep @androidx.annotation.Keep class * { *; }
# Keep all Parcelable implementations
-keep class * implements android.os.Parcelable { *; }
-keep class * implements java.io.Serializable { *; }
# Prevent issues with reflection (used by some libraries)
-keepattributes InnerClasses
-keepattributes *Annotation*
-keep class **.R$* { *; }
-keep class **.BuildConfig { *; }
# Keep WorkManager and background processing
-keep class androidx.work.** { *; }
-dontwarn androidx.work.**
# Keep for Firebase (if used)
-keep class com.google.firebase.** { *; }
-dontwarn com.google.firebase.**
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
# Keep native base (if using)
-dontwarn com.nativebase.**
# Prevent stripping React Native network modules
-keep class com.facebook.react.modules.network.** { *; }
-keep class com.facebook.react.modules.websocket.** { *; }
-keep class com.facebook.react.modules.core.** { *; }
-keep class com.facebook.react.modules.fresco.** { *; }
-keep class com.facebook.react.modules.i18nmanager.** { *; }
-keep class com.facebook.react.modules.blob.** { *; }
-keep class com.facebook.react.modules.systeminfo.** { *; }
-keep class com.facebook.react.animated.** { *; }
# Additional rules for React Native 0.72.5
# React Native's New Architecture
-keep class com.facebook.react.fabric.** { *; }
-keep class com.facebook.react.bridgeless.** { *; }
# For React Native JSI
-keep class com.facebook.jsi.** { *; }
-keep class com.facebook.react.jscexecutor.** { *; }
# Hermes
-keep class com.facebook.hermes.** { *; }
-keep class com.facebook.hermes.unicode.** { *; }
# Keep Yoga layout engine
-keep class com.facebook.yoga.** { *; }
# Keep for React Native 0.72.5 internal classes
-keep class com.facebook.react.internal.** { *; }
-keep class com.facebook.react.packagerconnection.** { *; }
# Keep for networking exceptions and debug
-keep class com.facebook.react.networking.** { *; }
# Keep for WebView JS bridge
-keepattributes JavascriptInterface
-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
-keepclassmembers,includedescriptorclasses class * { native <methods>; }
# Keep for runtime type checking
-keepattributes RuntimeVisible*Annotations
-keepattributes EnclosingMethod
# Keep React Native JS modules
-keep class com.facebook.react.bridge.** { *; }
-keep class com.facebook.react.uimanager.** { *; }
-keep class com.facebook.react.views.** { *; }
-keep class com.facebook.react.devsupport.** { *; }
# Keep for NativeModules that communicate with JS
-keepclassmembers class * { @com.facebook.react.bridge.ReactMethod <methods>; }
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }