【问题标题】:Using Different Sources for Testing and Release Android Studio使用不同的源测试和发布 Android Studio
【发布时间】:2016-03-07 07:09:27
【问题描述】:

我正在为调用 RESTful Web 服务的代码编写测试。我需要使用不同的变量进行测试、登台和生产。例如,登台发布 url 可以是“myapp.staging.com”,而当我测试登台风格时,它应该是“localhost/27015”。生产风味也是如此。当它发布时,它应该是“myapp.production.com”。如何实现这些风味、构建类型组合?

【问题讨论】:

  • 到目前为止你尝试了什么?
  • @Amy 我了解到我可以使用 buildConfigField 来存储变量。但是这种方法不允许我为不同的风格和构建类型变体使用不同的值。例如,发布构建类型将始终指向单个 url(无论是 staging 还是 live)。我希望 url 根据 buildType 和风味而有所不同。

标签: android android-studio build android-gradle-plugin


【解决方案1】:

您可以使用 BuildType 和风格来实现它。

如果您想为不同的组合使用不同的 url,您可以在资源中使用值。

使用flavor1,flavor2 你有4个构建变体。
您可以在资源中设置 url,例如在 strings.xml 文件中。
然后你可以在这些文件夹中设置不同的文件来实现你想要的。

src/flavor1/
src/flavor1Debug/
src/flavor1Release/
src/flavor2/
src/flavor2Debug/
src/flavor2Release/

您可以在 build.gradle 文件中设置所有其他值,例如 applicationId 。

【讨论】:

    【解决方案2】:

    是的,可以在您的 gradle 文件中使用 productFlavours,因此每个构建变体都有自己的

    • 应用图标
    • 应用名称
    • 常量(基础 API URL)

    Try This

    希望这对你有用。

    【讨论】:

      【解决方案3】:

      这就是我们正在做的事情...这是我们应用程序的构建文件。

      defaultConfig {
              applicationId 'com.XXXX.XXXXfyd'
              minSdkVersion 17
              targetSdkVersion 23
              versionCode 55
              versionName "1.0.0"
      
              multiDexEnabled true
      
              buildConfigField "boolean", "OTP_ENABLED", "false";
              buildConfigField "boolean", "MINT_API_ENABLED", "false";
              buildConfigField "String", "MINT_API_KEY", "\"XXCVVF\"";
      
              resValue "string", "app_name", "XXXXfyd Debug"
              resValue "string", "account_name", "XXXXfyd Debug"
              resValue "string", "account_type", "com.XXXX.XXXXfyd.debug"
              resValue "string", "account_authority", "com.mind.eventifyd.debug.provider"
      
              buildConfigField "String", "ACCOUNT_NAME", "\"XXXXfyd Debug\""
              buildConfigField "String", "ACCOUNT_TYPE", "\"com.XXXX.XXXXfyd.debug\""
              buildConfigField "String", "ACCOUNT_AUTHORITY", "\"com.XXXX.XXXXfyd.debug.provider\""
      
              buildConfigField "String", "XXXXXFYD_XXXXX_URI", "\"http://XXX.XXX.XX.XX\"";
              buildConfigField "String", "XXXXFYD_XXXX_URI", "\"XXXX//XXXXX@XXX.XXX.XX.XX:XXXXX\""
          }
       buildTypes {
              release {
                /*  zipAlignEnabled true
                  minifyEnabled true*/
                  shrinkResources false
                  debuggable false
                /*  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'*/
                  signingConfig signingConfigs.release
      
                  versionNameSuffix "-build." + getDate()
      
                  resValue "string", "app_name", "XXXXXfyd"
                  buildConfigField "boolean", "OTP_ENABLED", "false";
                  buildConfigField "boolean", "MINT_API_ENABLED", "true";
                  buildConfigField "String", "MINT_API_KEY", "\"efrtgyhu\"";
      
                  resValue "string", "account_name", "XXXXXfyd"
                  resValue "string", "account_type", "com.XXXX.XXXXfyd"
                  resValue "string", "account_authority", "com.XXXX.XXXXfyd.provider"
      
                  buildConfigField "String", "ACCOUNT_NAME", "\"XXXXifyd\""
                  buildConfigField "String", "ACCOUNT_TYPE", "\"com.XXXX.XXXXifyd\""
                  buildConfigField "String", "ACCOUNT_AUTHORITY", "\"com.XXXX.XXXXfyd.provider\""
      
                  buildConfigField "String", "XXXFYD_XXXX_URI", "\"https://com.XXXX.XXXXfyd.XXXXXes.com\"";
                  buildConfigField "String", XXXXXFYD_XXXX_URI", "\"XXXX://XXXXX@XXXXXfyd.XXXXerXXXXs.com:XXXX\""
              }
              debug {
                /*  zipAlignEnabled true
                  minifyEnabled false*/
                  debuggable true
                  applicationIdSuffix ".debug"
                  signingConfig signingConfigs.debug
                  versionNameSuffix "-debug-build." + getDate()
              }
          }
      
          productFlavors {
              dev {
                  minSdkVersion 19
              }
              prod {
                  minSdkVersion 17
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-29
        • 1970-01-01
        • 2012-07-24
        • 1970-01-01
        • 1970-01-01
        • 2020-09-13
        • 2014-04-17
        • 2015-02-15
        相关资源
        最近更新 更多