From b509310da9c8ce0eeffcfdd2f93aa4ce89d5f336 Mon Sep 17 00:00:00 2001 From: Eliot Gevers Date: Tue, 29 Sep 2026 15:14:50 +0200 Subject: [PATCH 1/2] test(expo): enable R8 in Android release tests --- .changeset/quiet-expo-release-check.md | 2 ++ .github/workflows/expo-native-build.yml | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 .changeset/quiet-expo-release-check.md diff --git a/.changeset/quiet-expo-release-check.md b/.changeset/quiet-expo-release-check.md new file mode 100644 index 00000000000..a845151cc84 --- /dev/null +++ b/.changeset/quiet-expo-release-check.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/.github/workflows/expo-native-build.yml b/.github/workflows/expo-native-build.yml index bf96461fe88..fdce943c8e3 100644 --- a/.github/workflows/expo-native-build.yml +++ b/.github/workflows/expo-native-build.yml @@ -104,7 +104,7 @@ jobs: with: path: ${{ steps.native-build-key.outputs.artifact }} # Bump the version when native build commands change. - key: expo-native-build-v1-${{ runner.os }}-${{ matrix.expo-sdk }}-${{ matrix.platform }}-${{ matrix.run-e2e == true && 'e2e' || 'build' }}-${{ env.E2E_INSTANCE_NAME }}-${{ steps.native-build-key.outputs.hash }} + key: expo-native-build-minified-v2-${{ runner.os }}-${{ matrix.expo-sdk }}-${{ matrix.platform }}-${{ matrix.run-e2e == true && 'e2e' || 'build' }}-${{ env.E2E_INSTANCE_NAME }}-${{ steps.native-build-key.outputs.hash }} - if: steps.native-build-cache.outputs.cache-hit != 'true' uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 @@ -207,7 +207,9 @@ jobs: - name: Build Android fixture if: matrix.platform == 'android' && steps.native-build-cache.outputs.cache-hit != 'true' working-directory: ${{ env.FIXTURE_DIR }} - run: pnpm build:android + run: | + pnpm build:android -Pandroid.enableMinifyInReleaseBuilds=true -Pandroid.enableShrinkResourcesInReleaseBuilds=true + test -s android/app/build/outputs/mapping/release/mapping.txt - name: Prebuild iOS fixture if: matrix.platform == 'ios' && steps.native-build-cache.outputs.cache-hit != 'true' From 62f89f812e8957888f5636ed7d0141ede762ee35 Mon Sep 17 00:00:00 2001 From: Eliot Gevers Date: Tue, 29 Sep 2026 15:51:34 +0200 Subject: [PATCH 2/2] fix(expo): supply narrow R8 rule for release fixtures --- .changeset/quiet-expo-release-check.md | 3 +++ packages/expo/android/build.gradle | 1 + packages/expo/android/proguard-rules.pro | 1 + 3 files changed, 5 insertions(+) create mode 100644 packages/expo/android/proguard-rules.pro diff --git a/.changeset/quiet-expo-release-check.md b/.changeset/quiet-expo-release-check.md index a845151cc84..04d678e7310 100644 --- a/.changeset/quiet-expo-release-check.md +++ b/.changeset/quiet-expo-release-check.md @@ -1,2 +1,5 @@ --- +'@clerk/expo': patch --- + +Prevent Android release builds with R8 from failing on the missing Kotlin `MustUseReturnValues` annotation. diff --git a/packages/expo/android/build.gradle b/packages/expo/android/build.gradle index 8975e848f7d..bfb26e0e264 100644 --- a/packages/expo/android/build.gradle +++ b/packages/expo/android/build.gradle @@ -44,6 +44,7 @@ android { versionCode 1 versionName "1.0.0" buildConfigField "String", "CLERK_EXPO_VERSION", "\"${clerkExpoVersion}\"" + consumerProguardFiles "proguard-rules.pro" } buildTypes { diff --git a/packages/expo/android/proguard-rules.pro b/packages/expo/android/proguard-rules.pro new file mode 100644 index 00000000000..c86ea894ce2 --- /dev/null +++ b/packages/expo/android/proguard-rules.pro @@ -0,0 +1 @@ +-dontwarn kotlin.MustUseReturnValues