I am developing an android app in a situation where I would like:
- Testers (not developers, not necessarily good with computers, but I do know their play store emails) to be able to quickly switch between a beta version and a stable version of the same app
- To provide updates to both the stable version and the beta version through the play store
- Restricted access to the beta version. The release version is already publicly available on the play store.
So far I have mostly focused on ways to get two versions of essentially the same app on an android device. I've already considered a few options, but I'd like advice as to how to proceed. I could:
- Create a "new" app with
beta
appended to it's name, with a different icon to distinguish it to the testers, but mostly the same internals. It could be distributed as a closed alpha/internal test through the play store. I would like to avoid this, as it will make it more difficult for me to manage versions - when I want to promote beta to release, I would have to manually change the icon and the name of the app - Create a build flavor. I'm not entirely sure how capable build flavors are or how well-supported they are.
- Use the google play store's closed alpha/internal test program. This is less than ideal because it takes considerable effort to opt-in/opt-out of testing programs. You have to go to a url, click a button, uninstall the app and reinstall the app.
- Use an app like app cloner to clone the stable version and rename it, then distribute the beta through the play store. This is not ideal because it makes updating the release version require developer intervention.
note: When I say closed alpha and internal test, I mean google play closed alpha and internal test (accessible through the google developer console), not their more general definitions. When I say Beta, I mean the more general definition - a pre-release version.
Edit: upon following the advice on this post, I successfully installed two apps, but whenever trying to open one, I would get a picker dialog, like this