0

在我的应用程序中,我有 2 种构建类型releasedebug下面是代码片段。

buildTypes {
    getByName("debug") {
        applicationIdSuffix = ".debug"
        versionNameSuffix = ".debug"
        buildConfigField("boolean", "DEBUG_MODE", "true")
    }

    getByName("release") {
        proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
        buildConfigField("boolean", "DEBUG_MODE", "false")
    }
}

我还有 2 种产品风格,下面是代码片段。

flavorDimensions("version")
productFlavors {
    create("flavor1") {
        setDimension("version")
    }
    create("flavor2") {
        setDimension("version")
        versionCode = 1
        versionName = "1.0"
    }
}

现在我总共有 4 种产品类型

  • 风味1调试
  • 风味1释放
  • 风味2调试
  • 风味2释放

现在我需要创建一个变量 app_name,以便不同产品类型的应用名称可以不同。

  • flavor1debug ---------> app_name : flavor1 (debug)
  • flavor1release ---------> app_name : flavor1
  • flavor2debug ---------> app_name : flavor2 (debug)
  • flavor2release ---------> app_name : flavor2

如何使用配置或 strings.xml 实现相同的目标

编辑:假设,我正在使用第三方库并且我想使用不同的身份验证密钥,如何使用Flavor&buildType组合来实现这一点?

即我需要基于以下配置的 4 个不同的键

  1. Flavor1 + 调试 ========= Key1
  2. 风味1 + 释放========= Key2
  3. Flavor2 + 调试 =========== Key3
  4. 风味2 + 释放========== Key4

任何帮助,将不胜感激。

4

2 回答 2

0

在每个源集中声明strings.xml,然后你可以为不同的构建类型和风格设置不同的值检查这个

于 2019-12-02T08:13:45.197 回答
0
Try this,


productFlavors {
   flavorA {
        setDimension("version")
        manifestPlaceholders = [appLabel : "FlavourA"]

    }
   flavorB {
        setDimension("version")
        versionCode = 1
        versionName = "1.0"
        manifestPlaceholders = [appLabel : "FlavourB"]

    }
}


In android manifest file set this appLabel.

 <application
        android:name=".ApplicationClass"
        android:icon="@mipmap/logo_launcher"
        android:label="${appLabel}"    // Add this line.
        android:largeHeap="true"
        android:theme="@style/AppTheme"
/>
于 2019-12-02T08:55:10.947 回答