【问题标题】:Detect the stage of the app (alpha, beta or production)检测应用程序的阶段(alpha、beta 或生产)
【发布时间】:2016-12-20 16:19:27
【问题描述】:

我正在使用cordova开发一个android应用程序,我希望使用三个给定的阶段来逐步发布它:

  • 用于 IT 测试的 Alpha 版
  • 合作伙伴测试版
  • 为其他人制作

但是,我使用 mixpanel 来跟踪一些用户输入。 Mixpanel 需要一个令牌才能工作,我有 2 个,一个用于测试版,另一个用于生产,应用启动时会加载 mixpanel.init("token1")

目前,我构建了一个没有定义令牌以在 alpha 中运行的 apk,然后我使用 token1 构建另一个以在 beta 中运行,然后在另一个带有 token2 的 apk 以在 prod 中运行。它有效,但很痛苦。

我希望在 Google Play 开发者控制台中使用 promote 选项,这样我就可以构建一个单独的 apk(自动),在需要时升级为 beta/prod 并且知道它处于哪个阶段,因此它使用相应的令牌。

有可能吗?如果没有,有没有更好的方法让它发挥作用?

TL;DR想知道应用在哪个阶段(alpha/beta/prod)运行,因此它使用相应的令牌变量。

【问题讨论】:

  • 嗨,您找到解决方案了吗?
  • 很遗憾,我没有找到最佳解决方案。我们所做的是创建一个隐藏菜单,只有 alpha 测试人员知道如何启用并允许他们在运行时更改令牌。所以我们总是使用生产令牌构建,但是 alpha 在测试之前会手动更改它。为我们服务。
  • 我也在 androids 和 cordovas slack 频道问过,他们都说没有办法。
  • 感谢您的回复。希望找到一种方法,通过测试状态来管理端点,在整个 alpha、beta 和 prod 中只保留一个 apk。
  • @Magda 你有没有找到像这样在运行时切换环境的方法?一个“合理”的解决方案是在您的应用程序中添加一个隐藏菜单,这绝对是可笑的。应该可以在运行时检测阶段...

标签: android cordova google-play mixpanel


【解决方案1】:

我不确定这是否会有所帮助,但您是否使用 build.gradle 来制作不同的产品风格?你可以让它在每种构建类型中生成一个具有不同最终常量的类。

因此,对于您的产品构建,您可以执行以下操作:

prod {  
applicationId "zuul.com.android"
buildConfigField 'String', 'HOST', '"http://api.zuul.com"'
buildConfigField 'String', 'FLAVOR', '"prod"'
buildConfigField "boolean", "REPORT_CRASHES", "true"
}

结果是这样的:

BuildConfig.HOST  
BuildConfig.FLAVOR  
BuildConfig.REPORT_CRASHES  

然后你可以有一个用于开发、测试或其他的。

查看这些链接:

http://blog.brainattica.com/how-to-work-with-flavours-on-android/

Deploying multiple build variants at a time - Android studio gradle

【讨论】:

  • 但是对于口味,我仍然需要构建其中的 3 个,并为每个阶段单独发送到商店,对吧?我想使用提升选项。
猜你喜欢
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多