19

我担心答案可能是“不可能的”,但我想知道是否有办法检测我上传到 Play 商店的 apk 是 alpha/beta 还是稳定频道。

我想实现这一点,因为我有一个完整的菜单通向我想隐藏在稳定频道中的 Beta 功能。

这非常有用,因为当我修复推送到 Store 的通用错误时,我不想每次都重新编译,无论是否使用 beta 按钮。

不幸的是,我没有要分享的代码,但任何帮助或建议将不胜感激

在此处输入图像描述


我觉得这个功能实际上有一个很好的用例。考虑以下场景:

  1. 我有一个在 prod.api.example.com 上增加版本的 API
  2. 我有一个独立增加版本但依赖于 api 的移动应用程序。
  3. 在 api 开发人员添加或删除功能之前,他们会在不同的 url 上公开更改。说:beta.api.example.com
  4. 我希望我的 alpha 或 beta 测试人员始终针对 api 的 beta url 工作,因为他们会发现重大更改。
  5. 当新的 api 更改从 beta 发布到 prod 时,我想将我的 Android 应用程序从 alpha 或 beta 升级到 prod,而不增加我的移动应用程序版本号,并且如果一切正常,则必须重新构建。
4

4 回答 4

1

我希望也有一种方法可以轻松做到这一点,但我还没有找到。

另一种选择是有一个包装测试版功能的标志,然后使用谷歌标签管理器http://www.google.com/tagmanager/在您将应用程序升级到生产之前关闭您只需要在测试版上发布的功能.

于 2013-05-24T17:13:42.953 回答
1

真的很简单,上传一个不同的APK。维护一个不同的代码分支,只在您的 beta 频道中使用 beta 功能。重新编译不应该是一个大麻烦。您正在使用某种形式的源代码控制吗?

于 2013-05-22T19:51:43.887 回答
0

Alpha/Beta 版刚刚推出,Google 没有提到任何你想要的东西。
如果这样的事情是可能的,它的地方可能就是Google Play Services
它不在那里。

一种可能的解决方法 -
如果您知道要从测试版转移到生产版的日期,您可以使用这个小技巧:将调试菜单的默认可见性设置为gone,并在该日期之前将其设置为在代码中可见。

于 2013-05-22T21:12:25.027 回答
-1

假设同一个 apk 通常从 Beta 升级到 Production,您的应用可以使用 android HttpURLConnnection来读取您自己的应用 ID 的 Google Play 商店详细信息页面。

如果当前用户注册了Beta,则应用名称显示为“应用名称(Beta) ”,否则将显示为“应用名称

示例 Java 代码,了解如何在下面实现它:

boolean isBeta = false;
URL url = new URL("https://play.google.com/sore/apps/details?id=com.example.app");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
  InputStream in = new BufferedInputStream(urlConnection.getInputStream());
  Scanner scanner = new Scanner(in);
  isBeta = (scanner.findWithinHorizon("\\s\\(Beta\\)", 650000) != null);
} finally {
  urlConnection.disconnect();
}
于 2020-04-28T06:38:58.343 回答