代码之家  ›  专栏  ›  技术社区  ›  Abner Escócio

在Google Play上将应用程序从测试版升级到生产版,使用构建变体

  •  0
  • Abner Escócio  · 技术社区  · 6 年前

    我有以下情况

    情景

    第1部分。 an app working with build variants : debug , beta and release as follow

    构建类型{ 调试{ 版本名称后缀“-debug” 应用程序ID后缀“.debug” buildconfigfield“string”,“服务器URL”,“‘URL本地测试’” 可调试真 签名config signingconfigs.config } β{ 版本名称后缀“-beta” buildconfigfield“string”,“服务器URL”,“‘URL认证’” 签名config signingconfigs.config } 释放{ buildconfigfield“string”、“服务器URL”、“URL生产” MinifyEnabled错误 proguardfiles getdefaultproguardfile('proguard-android.txt'),'proguard rules.pro' 签名config signingconfigs.config } } < /代码>

    以及一个使用 string server_url的调用,它通过选择的 buildtype指向当前的url。看这个< /P>

    string url=buildconfig.server_url
    < /代码> 
    
    

    2部分。The switch betweenbuild variantsby android studio,as follow image

    这对我来说绝对有效

    问题< /H1>

    1部分。I have the app on google play productiongenerated as signed apk from release variant

    2部分。I need put the app on google play beta testgenerating as signed apk from beta variant,e.g,pointing tourl hormation

    3部分。当产品所有者完成测试后,我需要通过Google Play控制台将同一个应用程序升级为生产应用程序。

    问题

    核心问题:当我将应用程序从beta升级到production时,它将自动指向url productionbyrelease variantor i will need generate another apk assigned apk from release variant?

    为什么?主要动机是因为我无法在没有安全保证的情况下测试此促销活动,因为它会很好地工作,而且不重要,这将节省我的时间,我自己的厨师也可以做到这一点。

    警告!如果它是错误的工作,那么做它的最佳实践是什么?和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
        }
    }
    

    和使用电话String SERVER_URL指向当前URL的方式buildType selected。看看这个

    String URL = BuildConfig.SERVER_URL
    

    2部分。两者之间的转换构建变种版本安卓工作室,如下图所示

    enter image description here

    这对我来说绝对有效

    问题

    1部分。我有谷歌游戏制作的应用程序从版本变量生成为已签名的APK

    2部分。我需要把这个应用放在Google Play测试版上从beta变量生成有符号apk例如,指向url homologation

    3部分。当产品所有者完成测试后,我需要通过Google Play控制台将同一个应用程序升级到产品。

    问题

    核心问题:当我将应用程序从测试版升级到生产版时,它会自动指向url production通过release variant或者我需要生成另一个apk作为signed apk from release variant?

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

    警觉的!如果是错误的工作,最好的实践是什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Nick Fortescue    6 年前

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

    • 使用当前的设置,您可以将一些配置编译到APK中,包括服务器URL
    • 您希望在测试版中使用一台服务器进行测试,而在发布版中使用另一台服务器进行测试
    • 但这意味着你不能提升你的beta apk版本,因为URL会有所不同。但是,如果您重新编译,就不能确保APK与您测试的APK保持不变。

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

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

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