Automating Android Play Store Releases, Part 1: Signing & Version Drift
Part 1 of a 5-part series on automating a multi-app Android release pipeline — from a free-tier build queue to a genuine self-hosted infrastructure migration. This part covers the setup and the first two real incidents. Part 2 → covers a Play Store error that lied about its own cause, a one-line bug that invalidated an entire workflow file, and separating "merged" from "released." Part 3 → and…
Automating Android Play Store Releases, Part 1: Signing & Version Drift
Cyfamod is a school management platform that builds two Android apps - one for staff and one for students and parents - from a single Expo React Native codebase. The apps are distinguished by an environment variable at build time. Initially, the team used EAS's free build tier for testing and internal releases, but encountered issues with the free tier's build queue and local build performance.
The first significant hurdle was the Android app signing process. While Expo handles keystore management by default, Google Play requires the SHA-1 fingerprint of the signing key to be provided in advance for production uploads. Failing to provide this fingerprint results in rejected builds, even if the APK is valid.
The second issue was version number management. The team used a JSON file for version tracking, which was ignored by Git and tracked locally. However, this approach didn't work well for release numbering, as every real release started from scratch on a fresh GitHub Actions runner. The fix involved two parts: using the highest-numbered file in the release-notes folder for the version name and using a dedicated build number (versionCode) that adheres to Google Play's strict requirements for version codes.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.