androidgoogle-play-consolegoogle-play-internal-testing

Android Play Console: internal test track is not usable when version code in other track is higher


The answer in the question Android play console: internal testing version, close testing ? how does it works? says:

End users (or testers) cannot choose which version they want, they will always receive the APK/AAB with the highest versionCode that they are eligible for.

But I wonder: How can we continue using the internal test track for developing new features when it's overriden by the production track if we release something on the production track, i.e. a hotfix?

Work arounds could be:

  1. re-release the internal version with a higher version code after a release on production track has been made.
  2. not using the internal test track at all and providing the internal testers with an apk.
  3. release a seperate app for internal testing

But all these are time consuming and it makes no sense to me that there is no workflow for a parallel internal testing to a frequently updated production release.

Some suggestions on this?


Solution

  • I think the best approach is to continually increment version codes, for every build, and always upload a release with a higher version code, as well as use a versioning strategy that gives you release flexibility. It's unfortunately that the Play Store requires this, but I don't know of a way around it.

    For example:
    Your current production release has version code 123 and you're testing the next release and want to distribute for internal testing. Your next release should be incremented (e.g. version code 124), and published to internal testing. Once you're done testing and ready to release, you promote version 124 to production and prepare your next release for internal testing (and increment its version code to 125, etc.).

    This is a contrived example, and versioning strategy can get really complex in a real-world example (e.g. if you ship a hotfix release straight to production to fix a critical bug), but that's more of a concern with how your versioning strategy is built and what version numbers you increment for each release.

    To go even further with a real-world example: