ANDROID_KEYSTORE_PASSWORD was set in the CI runner environment but never
forwarded into the Dagger container, so System.getenv() returned null
inside the Flutter build, causing a NullPointerException in
FinalizeBundleTask when signing the release bundle.
- Add keystorePassword *dagger.Secret param to BuildAndroidRelease,
BuildAndroidApk, PublishAndroid, and DeployApk in the Dagger module
- Pass ANDROID_KEYSTORE_PASSWORD via WithSecretVariable to the build container
- Update ci.yml to supply env:ANDROID_KEYSTORE_PASSWORD to both
publish-android and deploy-apk dagger calls
- Refactor build.gradle.kts to conditionally create the signing config
only when both the keystore file and password are available, avoiding
null values being passed to the signing config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>