From 4bd0ec921e7ba0b074fef28604febd7ad9d57d01 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 31 Jul 2020 10:58:20 -0300 Subject: Enable code minification for release builds of all apps Attention: This brings a high run-time crash risk. So all release builds need to be thoroughly tested before publication. Nightly builds have been switched to release builds for that reason. --- cashier/.gitlab-ci.yml | 2 +- cashier/build.gradle | 2 +- cashier/proguard-rules.pro | 4 ++++ merchant-lib/consumer-rules.pro | 1 + merchant-terminal/.gitlab-ci.yml | 2 +- merchant-terminal/proguard-rules.pro | 2 ++ taler-kotlin-android/consumer-rules.pro | 15 +++++++++++++++ wallet/.gitlab-ci.yml | 2 +- wallet/build.gradle | 2 +- wallet/proguard-rules.pro | 4 ++++ 10 files changed, 31 insertions(+), 5 deletions(-) diff --git a/cashier/.gitlab-ci.yml b/cashier/.gitlab-ci.yml index 6b73dee..cbf2bf0 100644 --- a/cashier/.gitlab-ci.yml +++ b/cashier/.gitlab-ci.yml @@ -36,7 +36,7 @@ cashier_deploy_nightly: # Set nightly application ID - sed -i "s,^\(\s*applicationId\) \"*[a-z\.].*\",\1 \"net.taler.cashier.nightly\"," cashier/build.gradle # Build the APK - - ./gradlew :cashier:assembleDebug + - ./gradlew :cashier:assembleRelease # START only needed while patch not accepted/released upstream - apt update && apt install patch - patch /usr/lib/python3/dist-packages/fdroidserver/nightly.py nightly-stats.patch diff --git a/cashier/build.gradle b/cashier/build.gradle index e443944..341562d 100644 --- a/cashier/build.gradle +++ b/cashier/build.gradle @@ -35,7 +35,7 @@ android { buildTypes { release { - minifyEnabled false + minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } diff --git a/cashier/proguard-rules.pro b/cashier/proguard-rules.pro index f1b4245..f612b29 100644 --- a/cashier/proguard-rules.pro +++ b/cashier/proguard-rules.pro @@ -19,3 +19,7 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile + +# androidx.security:security-crypto +# https://github.com/google/tink/issues/361 +-keep class * extends com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite { *; } diff --git a/merchant-lib/consumer-rules.pro b/merchant-lib/consumer-rules.pro index e69de29..dc239e6 100644 --- a/merchant-lib/consumer-rules.pro +++ b/merchant-lib/consumer-rules.pro @@ -0,0 +1 @@ +-keep class net.taler.merchantlib.** {*;} diff --git a/merchant-terminal/.gitlab-ci.yml b/merchant-terminal/.gitlab-ci.yml index d159902..470cb58 100644 --- a/merchant-terminal/.gitlab-ci.yml +++ b/merchant-terminal/.gitlab-ci.yml @@ -38,7 +38,7 @@ merchant_deploy_nightly: # Set nightly application ID - sed -i "s,^\(\s*applicationId\) \"*[a-z\.].*\",\1 \"net.taler.merchantpos.nightly\"," merchant-terminal/build.gradle # Build the APK - - ./gradlew :merchant-terminal:assembleDebug + - ./gradlew :merchant-terminal:assembleRelease # START only needed while patch not accepted/released upstream - apt update && apt install patch - patch /usr/lib/python3/dist-packages/fdroidserver/nightly.py nightly-stats.patch diff --git a/merchant-terminal/proguard-rules.pro b/merchant-terminal/proguard-rules.pro index f1b4245..1a50a50 100644 --- a/merchant-terminal/proguard-rules.pro +++ b/merchant-terminal/proguard-rules.pro @@ -19,3 +19,5 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile + +-keep class net.taler.merchantpos.** {*;} diff --git a/taler-kotlin-android/consumer-rules.pro b/taler-kotlin-android/consumer-rules.pro index e69de29..854cdfd 100644 --- a/taler-kotlin-android/consumer-rules.pro +++ b/taler-kotlin-android/consumer-rules.pro @@ -0,0 +1,15 @@ +-dontobfuscate + +# This is broad, but better leave a few common class and still optimize the rest out +-keep class net.taler.common.** {*;} + +# AndroidX navigation +-keepnames class androidx.navigation.fragment.NavHostFragment + +# Jackson serialization +-keep class kotlin.Metadata { *; } +-keep class kotlin.reflect.** { *; } + +# KotlinX serialization +-keepattributes *Annotation*, InnerClasses +-dontnote kotlinx.serialization.SerializationKt diff --git a/wallet/.gitlab-ci.yml b/wallet/.gitlab-ci.yml index c417aa9..42f561d 100644 --- a/wallet/.gitlab-ci.yml +++ b/wallet/.gitlab-ci.yml @@ -25,7 +25,7 @@ wallet_deploy_nightly: # Ensure that key exists - test -z "$DEBUG_KEYSTORE" && exit 0 # Build the APK - - ./gradlew :wallet:assembleNightlyDebug + - ./gradlew :wallet:assembleNightlyRelease # START only needed while patch not accepted/released upstream - apt update && apt install patch - patch -b /usr/lib/python3/dist-packages/fdroidserver/nightly.py nightly-stats.patch diff --git a/wallet/build.gradle b/wallet/build.gradle index 1761018..93eef05 100644 --- a/wallet/build.gradle +++ b/wallet/build.gradle @@ -53,7 +53,7 @@ android { } buildTypes { release { - minifyEnabled false + minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } diff --git a/wallet/proguard-rules.pro b/wallet/proguard-rules.pro index f1b4245..27f3799 100644 --- a/wallet/proguard-rules.pro +++ b/wallet/proguard-rules.pro @@ -19,3 +19,7 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile + +-keep class akono.AkonoJni {*;} + +-keep class net.taler.wallet.** {*;} -- cgit v1.2.3