1# Add project specific ProGuard rules here. 2# By default, the flags in this file are appended to flags specified 3# in /Users/ide/Library/Android/sdk/tools/proguard/proguard-android.txt 4# You can edit the include path and order by changing the proguardFiles 5# directive in build.gradle. 6# 7# For more details, see 8# http://developer.android.com/guide/developing/tools/proguard.html 9 10# Add any project specific keep options here: 11 12# If your project uses WebView with JS, uncomment the following 13# and specify the fully qualified class name to the JavaScript interface 14# class: 15#-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16# public *; 17#} 18 19 20# THIS IS VERY VERY BAD. REMOVE AS SOON AS VERSIONING IS FIXED 21-dontwarn ** 22 23 24-dontnote ** 25 26-keep class host.exp.exponent.generated.AppConstants { *; } 27 28##### Crashlytics ##### 29-keepattributes SourceFile,LineNumberTable 30 31##### Expo Universal Modules ##### 32 33-keepclassmembers class * { 34 @org.unimodules.core.interfaces.ExpoProp *; 35} 36-keepclassmembers class * { 37 @org.unimodules.core.interfaces.ExpoMethod *; 38} 39 40-keepclassmembers class * { 41 @**.expo.core.interfaces.ExpoProp *; 42} 43-keepclassmembers class * { 44 @**.expo.core.interfaces.ExpoMethod *; 45} 46 47-keep @**.expo.core.interfaces.DoNotStrip class * 48-keepclassmembers class * { 49 @**.expo.core.interfaces.DoNotStrip *; 50} 51 52##### React Native ##### 53-keep,allowobfuscation @interface **.facebook.proguard.annotations.DoNotStrip 54-keep,allowobfuscation @interface **.facebook.proguard.annotations.KeepGettersAndSetters 55-keep,allowobfuscation @interface **.facebook.react.bridge.ReadableType 56 57# Do not strip any method/class that is annotated with @DoNotStrip 58-keep @**.facebook.proguard.annotations.DoNotStrip class * 59-keepclassmembers class * { 60 @**.facebook.proguard.annotations.DoNotStrip *; 61} 62 63-keepclassmembers @**.facebook.proguard.annotations.KeepGettersAndSetters class * { 64 void set*(***); 65 *** get*(); 66} 67 68-keep class * extends **.facebook.react.bridge.JavaScriptModule { *; } 69-keep class * extends **.facebook.react.bridge.NativeModule { *; } 70-keepclassmembers class * { @**.facebook.react.uimanager.UIProp <fields>; } 71-keepclassmembers class * { @**.facebook.react.uimanager.ReactProp <methods>; } 72-keepclassmembers class * { @**.facebook.react.uimanager.ReactPropGroup <methods>; } 73 74# TODO: shouldn't need these two rules 75-keep interface **.facebook.react.bridge.** { *; } 76-keep enum **.facebook.react.bridge.** { *; } 77 78##### Versioned React Native ##### 79-keep class **.facebook.** { *; } 80-keep class abi** { *; } 81-keep class versioned** { *; } 82-keep class expo.modules** { *; } 83 84##### Butterknife ##### 85-keep class butterknife.** { *; } 86-dontwarn butterknife.internal.** 87-keep class **$$ViewBinder { *; } 88 89-keepclasseswithmembernames class * { 90 @butterknife.* <fields>; 91} 92 93-keepclasseswithmembernames class * { 94 @butterknife.* <methods>; 95} 96 97##### Stetho ##### 98-keep class **.facebook.stetho.** { *; } 99-dontwarn **.facebook.stetho.** 100 101##### fresco ##### 102# Keep our interfaces so they can be used by other ProGuard rules. 103# See http://sourceforge.net/p/proguard/bugs/466/ 104-keep,allowobfuscation @interface **.facebook.common.internal.DoNotStrip 105 106# Do not strip any method/class that is annotated with @DoNotStrip 107-keep @**.facebook.common.internal.DoNotStrip class * 108-keepclassmembers class * { 109 @**.facebook.common.internal.DoNotStrip *; 110} 111 112# Keep native methods 113-keepclassmembers class * { 114 native <methods>; 115} 116 117-dontwarn okio.** 118-dontwarn javax.annotation.** 119-dontwarn com.android.volley.toolbox.** 120 121##### okhttp ##### 122-keepattributes Signature 123-keepattributes *Annotation* 124-keep class com.squareup.okhttp.** { *; } 125-keep interface com.squareup.okhttp.** { *; } 126# This is also needed by Picasso 127-dontwarn com.squareup.okhttp.** 128 129-keep class okhttp3.** { *; } 130-keep interface okhttp3.** { *; } 131# This is also needed by Picasso 132-dontwarn okhttp3.** 133 134##### okio ##### 135-keep class sun.misc.Unsafe { *; } 136-dontwarn java.nio.file.* 137-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 138-dontwarn okio.** 139 140##### EventBus ##### 141-keepclassmembers class ** { 142 public void onEvent*(***); 143} 144 145# Only required if you use AsyncExecutor 146-keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent { 147 <init>(java.lang.Throwable); 148} 149 150##### Amplitude ##### 151-keep class com.amplitude.api.** {*;} 152 153##### DBFlow ##### 154-keep class com.raizlabs.android.dbflow.config.GeneratedDatabaseHolder 155 156##### SpongyCastle ##### 157-keep class org.spongycastle.** 158-dontwarn org.spongycastle.jce.provider.X509LDAPCertStoreSpi 159-dontwarn org.spongycastle.x509.util.LDAPStoreHelper 160