确定环境:Google Play(生产、测试版、内测版)

14

有没有可能让应用程序确定其在Google Play的哪个环境中发布?

我想知道应用程序是否位于Alpha、Beta或生产渠道中,以便我可以为每个环境使用不同的API url,如下所示:

  • Alpha - test.example.com/api/login

  • Beta - staging.example.com/api/login

  • Production - example.com/api/login

目前,我必须上传许多不同的APK文件,并递增versionCode才能使用3个不同的渠道。那么,有没有可能确定应用程序是被上传到哪个渠道了呢?


因为如果我将alpha APK转移到beta上,该应用程序仍将连接到test.example.com/api/login。而我希望它在beta上连接到staging.example.com/api/login。 - AuStrike
明白了。我认为你需要的是产品风味。每个风味都指向alpha、staging和production。在这里,看看我的博客文章。https://androiddevsimplified.wordpress.com/2016/04/06/gradle-power-android-product-flavours-and-configuration/ - drulabs
如果你想自动地生成应用版本名称和代码,请参考以下链接:https://androiddevsimplified.wordpress.com/2016/04/16/gradle-power-automatically-generate-android-app-version-code-and-name/ - drulabs
关于你的问题,兄弟,你有基础URL指向不同的URL。你可以利用这个来确定它是上传到哪个频道的。 - drulabs
我认为重点是只有一个APK,然后您可以使用推广按钮在不同的环境中使用相同的APK。我认为这将非常有用。 - deive
显示剩余4条评论
2个回答

2
我看到这里有两个选项。你可以:
  • 添加一个应用内运行机制来更改环境。默认情况下,应用将使用生产环境,但你可以使用隐藏/安全菜单进行更改。
  • 为每个环境在Google Play上上传一个版本。你可以在测试或者暂存环境中进行一些alpha/beta测试,当一切都准备就绪时,你可以提升到生产版本。不过,你需要仔细考虑包名或版本代码...
希望对你有所帮助 :)

1
我同意第一个。我们将使用方法1。在登录屏幕中只需添加DEVemail@gmail.com,应用程序将在DEV环境中工作。 但奇怪的是,谷歌没有提供更好的解决方案。 第二个方法不可靠,你可能会意外地将DEV版本推送到Live环境。 - paakjis

2
据我所知,你无法这样做。此外,如果它是从测试版安装的,你以后可以将其作为正常版本发布——因此安装源并不重要,而是当前的位置很重要。你所做的不是在 Play 商店中的阿尔法/贝塔测试意义上的测试。
但是,你可以通过检查商店列表中的版本号来猜测它是否为公共版本。 Is it possible to detect that an android app is either a beta version or production version? 里面有一些链接到 Google 开发者 API 的信息,可以基本上完成这个功能(虽然我非常确定你也可以在网上找到这些信息)。
总之,系统并不真正适用于那种需要连接到不同环境进行分布式测试的情况,因此你最好重新规划你的测试计划。它更适合在更新应用程序的所有用户之前进行实际的贝塔测试。
那么,对于你来说可能的一个选择是为每个不同的服务器/通路创建完全不同的私人产品(尽管那些构建需要更改 app id,但这可能更好)。
编辑:如果您妥协并从自己的服务器提供最新版本的名称,那么您可以极大地简化我提出的第一种解决方案/黑客方法,以便检查您的版本号是否大于beta、alpha或其他API,然后连接到它。这将使实际发布变得复杂,因为您需要记住更改此内容,但它将允许您在实际生产服务器上测试beta版本,然后再将其提升为完整的发布状态。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接