GitHub APK releases and Play Store releases are separate paths.
Before any release, make sure the app builds locally. Set up local build prerequisites as described in develop.md.
Restore fallback rates and icons as described in develop.md.
Run the local checks:
./gradlew ktlintCheck lint assembleDebugUse this path to publish APK artifacts through GitHub Releases.
- Update
versionCodeandversionNameinapp/build.gradle.kts. - Push the release commit.
- Create and push a version tag:
git tag vX.Y.Z
git push origin vX.Y.ZPushing the tag triggers release.yml; see workflows.md for what that workflow does.
After the GitHub Release is created, review or add GitHub Release notes as described in publication.md.
Use this path for the production Play Store release. Play Store publishing is done manually from Android Studio on the release manager's machine.
- Update
versionCodeandversionNameinapp/build.gradle.kts. - Put
keystore.jksin the project root from the secret storage. - Put the production
app/google-services.jsonfrom the secret storage. - Restore bundled fallback rates and icons as described in develop.md.
- Publish the GitHub APK release as described above and use it as a pre-Play-Store verification step.
- Open the project in Android Studio and create the signed Google Play release artifact using the production signing/config files.
- Prepare release notes as described in publication.md.
- Upload the generated Play Store artifact through Google Play Console and include the release notes.
- Finish listing updates, website updates, and announcements as described in publication.md.
Do not commit keystore.jks, production app/google-services.json, fallback rates, updatedAt, generated crypto icons, or generated release artifacts.