Context
Sub-issue of #535. Depends on #649, #650. Gets the app into Google Play internal testing and then published.
Prerequisites
- Google Play Console account ($25 one-time fee) — under the need4deed organisation
- Android Studio installed
- Java keystore for signing
One-time setup
Signing keystore
```bash
keytool -genkey -v -keystore need4deed.keystore
-alias need4deed -keyalg RSA -keysize 2048 -validity 10000
```
Store need4deed.keystore securely (not in git). Add passphrase to GitHub Secrets.
android/app/build.gradle — signing config
```groovy
android {
signingConfigs {
release {
storeFile file(System.getenv("KEYSTORE_PATH"))
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias "need4deed"
keyPassword System.getenv("KEY_PASSWORD")
}
}
buildTypes {
release { signingConfig signingConfigs.release }
}
}
```
Build AAB (Android App Bundle — required for Play Store)
```bash
next build
npx cap sync android
cd android
./gradlew bundleRelease
Output: android/app/build/outputs/bundle/release/app-release.aab
```
Google Play Console setup
Play Store metadata
Tasks
Depends on
#649 (Capacitor), #650 (icons + splash)
Context
Sub-issue of #535. Depends on #649, #650. Gets the app into Google Play internal testing and then published.
Prerequisites
One-time setup
Signing keystore
```bash
keytool -genkey -v -keystore need4deed.keystore
-alias need4deed -keyalg RSA -keysize 2048 -validity 10000
```
Store
need4deed.keystoresecurely (not in git). Add passphrase to GitHub Secrets.android/app/build.gradle— signing config```groovy
android {
signingConfigs {
release {
storeFile file(System.getenv("KEYSTORE_PATH"))
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias "need4deed"
keyPassword System.getenv("KEY_PASSWORD")
}
}
buildTypes {
release { signingConfig signingConfigs.release }
}
}
```
Build AAB (Android App Bundle — required for Play Store)
```bash
next build
npx cap sync android
cd android
./gradlew bundleRelease
Output: android/app/build/outputs/bundle/release/app-release.aab
```
Google Play Console setup
Play Store metadata
Tasks
build.gradlesigning config wired upDepends on
#649 (Capacitor), #650 (icons + splash)