在 Google 上将应用程序从测试版推广到生产版
Promotion of app from beta to production on Google Play working with Build Variants
我有以下情况
场景
第 1 部分。 与 Build Variants
一起工作的应用程序:debug
、beta
和 release
如下
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
}
}
以及 buildType selected
调用使用 String SERVER_URL
指向当前 url。看这个
String URL = BuildConfig.SERVER_URL
Part 2. Android工作室在Build Variants
之间切换,如下图
它对我来说绝对没问题
问题
第 1 部分。 我在 Google 上安装了该应用程序 从发布变体[=25 生成为已签名的 apk =]
第 2 部分。 我需要将应用程序置于 Google 进行 Beta 测试 从 BETA 变体生成已签名的 apk,例如,指向 url homologation
第 3 部分 当产品所有者完成 Beta 测试后,我需要通过 Google Play Console[=25= 将同一个应用程序推广到生产环境]
问题
核心问题: 当我将应用程序从测试版升级到生产版时,它会自动指向 url production
by release variant
或者我会需要生成另一个 apk 作为 signed apk from release variant
?
为什么? 主要动机是因为我不能在没有安全保证它会正常工作的情况下测试这个促销活动,同样重要的是,这会节省我的时间和我的自己的厨师会做
警告!如果是错误的工作,最好的做法是什么?
如果我理解你的问题是这样的:
- 根据您当前的设置,您已将一些配置编译到 APK 中,包括服务器 URL
- 您想用一台测试版服务器和另一台发布版服务器进行测试
- 但这意味着您不能升级您的 Beta APK 以发布,因为 URL 会有所不同。但是如果你重新编译,你就不能确定APK和你测试的一样没有变化。
你是对的,这是一个真正的问题。有两种常见的解决方案:
- 选项 1:不要将服务器字符串编译到 APK 中。相反,使用 Firebase remote config 之类的服务来动态更改您的测试版的服务器和其他设置。这样 APK 就不需要更改
- 选项 2:构建测试版时,在版本控制系统中标记分支。然后当你想升级到 prod 时,构建一个新的 APK,但要确保你使用的是来自版本控制系统的标记分支。
我个人认为我会推荐选项 1,但我知道不同的大型专业 android 开发人员同时使用这两种选项。
我有以下情况
场景
第 1 部分。 与 Build Variants
一起工作的应用程序:debug
、beta
和 release
如下
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
}
}
以及 buildType selected
调用使用 String SERVER_URL
指向当前 url。看这个
String URL = BuildConfig.SERVER_URL
Part 2. Android工作室在Build Variants
之间切换,如下图
它对我来说绝对没问题
问题
第 1 部分。 我在 Google 上安装了该应用程序 从发布变体[=25 生成为已签名的 apk =]
第 2 部分。 我需要将应用程序置于 Google 进行 Beta 测试 从 BETA 变体生成已签名的 apk,例如,指向 url homologation
第 3 部分 当产品所有者完成 Beta 测试后,我需要通过 Google Play Console[=25= 将同一个应用程序推广到生产环境]
问题
核心问题: 当我将应用程序从测试版升级到生产版时,它会自动指向 url production
by release variant
或者我会需要生成另一个 apk 作为 signed apk from release variant
?
为什么? 主要动机是因为我不能在没有安全保证它会正常工作的情况下测试这个促销活动,同样重要的是,这会节省我的时间和我的自己的厨师会做
警告!如果是错误的工作,最好的做法是什么?
如果我理解你的问题是这样的:
- 根据您当前的设置,您已将一些配置编译到 APK 中,包括服务器 URL
- 您想用一台测试版服务器和另一台发布版服务器进行测试
- 但这意味着您不能升级您的 Beta APK 以发布,因为 URL 会有所不同。但是如果你重新编译,你就不能确定APK和你测试的一样没有变化。
你是对的,这是一个真正的问题。有两种常见的解决方案:
- 选项 1:不要将服务器字符串编译到 APK 中。相反,使用 Firebase remote config 之类的服务来动态更改您的测试版的服务器和其他设置。这样 APK 就不需要更改
- 选项 2:构建测试版时,在版本控制系统中标记分支。然后当你想升级到 prod 时,构建一个新的 APK,但要确保你使用的是来自版本控制系统的标记分支。
我个人认为我会推荐选项 1,但我知道不同的大型专业 android 开发人员同时使用这两种选项。