Created
September 26, 2017 12:38
-
-
Save javayhu/26229de59e143c4f802cdfba95f286a1 to your computer and use it in GitHub Desktop.
ProGuard settings for React Native 0.44.0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#============================= React Native start =============================# | |
# If your project uses WebView with JS, uncomment the following | |
# and specify the fully qualified class name to the JavaScript interface | |
# class: | |
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | |
# public *; | |
#} | |
# Disabling obfuscation is useful if you collect stack traces from production crashes | |
# (unless you are using a system that supports de-obfuscate the stack traces). | |
#-dontobfuscate | |
# React Native | |
# Keep our interfaces so they can be used by other ProGuard rules. | |
# See http://sourceforge.net/p/proguard/bugs/466/ | |
-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip | |
-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters | |
-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip | |
# Do not strip any method/class that is annotated with @DoNotStrip | |
-keep @com.facebook.proguard.annotations.DoNotStrip class * | |
-keep @com.facebook.common.internal.DoNotStrip class * | |
-keepclassmembers class * { | |
@com.facebook.proguard.annotations.DoNotStrip *; | |
@com.facebook.common.internal.DoNotStrip *; | |
} | |
-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { | |
void set*(***); | |
*** get*(); | |
} | |
-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } | |
-keep class * extends com.facebook.react.bridge.NativeModule { *; } | |
-keepclassmembers,includedescriptorclasses class * { native <methods>; } | |
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; } | |
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; } | |
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; } | |
-dontwarn com.facebook.react.** | |
# TextLayoutBuilder uses a non-public Android constructor within StaticLayout. | |
# See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details. | |
-dontwarn android.text.StaticLayout | |
# okhttp | |
-keepattributes Signature | |
-keepattributes *Annotation* | |
-keep class okhttp3.** { *; } | |
-keep interface okhttp3.** { *; } | |
-dontwarn okhttp3.** | |
# okio | |
-keep class sun.misc.Unsafe { *; } | |
-dontwarn java.nio.file.* | |
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement | |
-dontwarn okio.** | |
# Caused by: java.lang.NoSuchFieldError: no field with name='mHybridData' | |
# ref: http://blog.csdn.net/it_talk/article/details/52789251 | |
-keep class com.facebook.** { *; } | |
#============================= React Native end =============================# |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment