fix(android): guard release signingConfig on missing storeFile#199
Conversation
The signingConfigs block falls back to ~/.android/debug.keystore if no
keystore.properties exists, but CI runners ship without that file so the
release signingConfig ends up with storeFile == null. The unconditional
`signingConfig = signingConfigs.getByName("release")` on the release
build type then tripped `packageUniversalRelease` with `SigningConfig
"release" is missing required property "storeFile"`.
Only attach the signingConfig when a real storeFile resolved. The workflow
signs the resulting unsigned AAB/APK via apksigner after the gradle build,
so the build itself doesn't need a configured signer.
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Automated deployment preview for the PR in the Cloudflare Pages. |
Summary
The Tauri Android jobs (`publish-android` + `publish-android-google-play-internal`) on main started failing after #198 with:
```
The new `signingConfigs { release { ... } }` block in src-tauri/gen/android/app/build.gradle.kts falls back to `
/.android/debug.keystore` when no `keystore.properties` is present. GitHub-hosted runners ship without `/.android/debug.keystore`, so the release signingConfig ends up half-initialised (`storeFile == null`). The unconditional `signingConfig = signingConfigs.getByName("release")` on the release build type then propagated the bad config into `packageUniversalRelease`.The workflow signs the AAB/APK via `apksigner` after the gradle build, so the build itself doesn't need a configured signer — we just need gradle to produce an unsigned artifact.
This guards the assignment on `releaseSign.storeFile != null`. With a real keystore present (Play Store sign-in-place builds), the signing happens during gradle as before. Without one (CI), the artifact comes out unsigned and the workflow's apksigner step takes over.
Test plan