0

我有以下情况

设想

第 1 部分。Build Variants使用:的应用程序debug,如下所示betarelease

buildTypes {
    debug {
        versionNameSuffix '-DEBUG'
        applicationIdSuffix '.debug'
        buildConfigField "String", "SERVER_URL", '"url local test"'
        debuggable true
        signingConfig signingConfigs.config
    }
    beta {
        versionNameSuffix '-BETA'
        buildConfigField "String", "SERVER_URL", '"url homologation"'
        signingConfig signingConfigs.config
    }
    release {
        buildConfigField "String", "SERVER_URL", '"url production"'
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.config
    }
}

以及使用String SERVER_URL指向当前 url的调用buildType selected。看看这个

String URL = BuildConfig.SERVER_URL

Part 2. Android Studio之间的切换Build Variants,如下图

在此处输入图像描述

它对我来说非常好用

问题

第 1 部分。我在 Google Play 生产中生成了作为已签名 apk 从发布变体生成的应用程序

第 2 部分。我需要将应用程序放在 Google Play beta 测试中,生成为来自 BETA 变体的签名 apk,例如,指向url homologation

第 3 部分。当产品负责人从 beta 测试完成测试时,我需要通过 Google Play 控制台将相同的应用程序推广到生产环境

问题

核心问题:当我将应用程序从 beta 推广到生产时,它会自动指向url productionbyrelease variant或者我需要生成另一个 apk 作为signed apk from release variant

为什么?主要动机是因为我不能在没有安全保证它会正常工作的情况下测试这个促销活动,同样重要的是,这可以节省我的时间,我自己的厨师可以做到

警报!如果是错误的工作,最好的做法是什么?

4

1 回答 1

1

如果我理解你的问题,那就是:

  • 使用您当前的设置,您已将一些配置编译到 APK 中,包括服务器 URL
  • 您想使用一台处于 beta 版的服务器进行测试,而另一台处于发布版中
  • 但这意味着您不能宣传您的测试版 APK 以发布,因为 URL 会有所不同。但是,如果您重新编译,您无法确定 APK 与您测试的那个 APK 保持不变。

你是对的,这是一个真正的问题。有两种常见的解决方案:

  • 选项 1:不要将服务器字符串编译到 APK 中。相反,请使用像Firebase 远程配置这样的服务来动态更改您的测试版的服务器和其他设置。这样APK就不需要改变
  • 选项 2:在构建 beta 版本时,在版本控制系统中标记您的分支。然后,当您想升级到 prod 时,构建一个新的 APK,但请确保您使用的是版本控制系统中的标记分支。

我个人认为我会推荐选项 1,但我知道不同的大型专业 android 开发人员同时使用这两个选项。

于 2018-07-31T10:45:03.533 回答