Skip to content

Commit

Permalink
Merge pull request #34218 from callstack-internal/hur/enable-proguard
Browse files Browse the repository at this point in the history
perf: reduce APK size with ProGuard enabled
  • Loading branch information
mountiny authored Jan 25, 2024
2 parents f8e2136 + 0d6384d commit 889051c
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 4 deletions.
5 changes: 3 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ project.ext.envConfigFiles = [
/**
* Set this to true to Run Proguard on Release builds to minify the Java bytecode.
*/
def enableProguardInReleaseBuilds = false
def enableProguardInReleaseBuilds = true

/**
* The preferred build flavor of JavaScriptCore (JSC)
Expand Down Expand Up @@ -152,8 +152,9 @@ android {
}
release {
productFlavors.production.signingConfig signingConfigs.release
shrinkResources enableProguardInReleaseBuilds
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"

signingConfig null
// buildTypes take precedence over productFlavors when it comes to the signing configuration,
Expand Down
30 changes: 28 additions & 2 deletions android/app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,31 @@
# http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:
-keep class com.facebook.hermes.unicode.** { *; }
-keep class com.facebook.jni.** { *; }
-keep class com.expensify.chat.BuildConfig { *; }
-keep, allowoptimization, allowobfuscation class expo.modules.** { *; }

# Added from auto-generated missingrules.txt to allow build to succeed
-dontwarn com.onfido.javax.inject.Inject
-dontwarn javax.lang.model.element.Element
-dontwarn javax.lang.model.type.TypeMirror
-dontwarn javax.lang.model.type.TypeVisitor
-dontwarn javax.lang.model.util.SimpleTypeVisitor7
-dontwarn net.sf.scuba.data.Gender
-dontwarn net.sf.scuba.smartcards.CardFileInputStream
-dontwarn net.sf.scuba.smartcards.CardService
-dontwarn net.sf.scuba.smartcards.CardServiceException
-dontwarn org.jmrtd.AccessKeySpec
-dontwarn org.jmrtd.BACKey
-dontwarn org.jmrtd.BACKeySpec
-dontwarn org.jmrtd.PACEKeySpec
-dontwarn org.jmrtd.PassportService
-dontwarn org.jmrtd.lds.CardAccessFile
-dontwarn org.jmrtd.lds.PACEInfo
-dontwarn org.jmrtd.lds.SecurityInfo
-dontwarn org.jmrtd.lds.icao.DG15File
-dontwarn org.jmrtd.lds.icao.DG1File
-dontwarn org.jmrtd.lds.icao.MRZInfo
-dontwarn org.jmrtd.protocol.AAResult
-dontwarn org.jmrtd.protocol.BACResult
-dontwarn org.jmrtd.protocol.PACEResult
-dontwarn org.spongycastle.jce.provider.BouncyCastleProvider
5 changes: 5 additions & 0 deletions android/app/src/main/res/raw/keep.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@mipmap/ic_launcher, @drawable/bootsplash*, @drawable/alert_background,
@drawable/ic_launcher*, @drawable/ic_notification*, @drawable/picker_background,
@drawable/rn_edit_text_material" />

0 comments on commit 889051c

Please sign in to comment.