是否有可能检测到Android应用程序是测试版还是生产版?

lon*_*uro 21 android google-play

我们在Google Play商店中使用测试阶段.对于应用程序端强制更新功能,我们希望检测我们的应用程序是来自测试阶段还是来自Google Play商店的生产阶段.这在Android应用程序中是否可行?

Diz*_*zzy 5

目前无法检测该应用程序是从 Play 商店的 Beta 版还是 Production Track 安装的。

假设您的应用程序将连接到您拥有的 API - 您可以做的是让 API 确定该应用程序是 Beta 应用程序还是 Prod 应用程序。例如,在 API 上存储被视为 Prod 应用程序的应用程序版本号,当应用程序连接到 API 时,它将其版本号传递给 API,并且 API 返回一个响应,说明它是否是 Prod(版本匹配)已存储的应用程序)或 Beta 应用程序(与已存储的应用程序不匹配)。

但这有两个限制

  1. 当应用程序准备投入生产时,您需要更新 API 上的移动应用程序版本号。
  2. 移动应用程序将由其版本号决定,而不是由它们在 Play 商店中所在的轨道决定。

如果您对这 2 个限制感到满意,那么您将只有 1 个 APK 和一种确定您的应用是 Prod 还是 Beta 的方法。


Nik*_*Nik -2

如果您的应用程序的版本名称 ( android:versionName) 始终包含 beta 版本的字符串“beta”,您可以在运行时检索包名称并进行检查。

使用该 getPackageInfo()方法检索PackageInfo具有 versionName String 字段的对象。

另一种方法是使用android:versionCode. 例如,您可以决定测试版本始终具有奇数版本代码,而生产版本始终具有偶数版本代码。您可以用来getPackageInfo()检索版本代码并据此做出决定。

  • 我认为任何使用过 Google Play 测试版分发渠道的人都非常清楚这一点。 (15认同)
  • 正如在上面答案的评论中一样,您误解了我们的意图,我们不想为测试版和产品版提供不同的应用程序 (9认同)
  • 这是一个对答案(包括我的和 harvey_slash 的)投反对票的可怕理由,特别是当你没有在最初的请求中拼写出来时(并且仍然没有这样做)。 (2认同)