为 android 中的每种风格替换 XML 文件

fre*_*yle 5 android source-sets build.gradle android-gradle-plugin android-variants

我正在尝试将Braze集成到我的应用程序中以进行推送通知。Braze 需要我们在其中添加 API 密钥和其他 braze 相关内容(这里是文档)创建一个braze.xml文件。src/main/res/values

现在我需要区分 prod 和 qa 环境,这意味着它们将有 2 个不同的 API 密钥。

我想知道如何使用不同的braze.xml口味来实现不同的效果。

我找到了这个

sourceSets {
    main {
         java {
            srcDirs = ['src']
         }
    }

    test {
        java {
            srcDirs = ['test']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用它来替换我的 braze.xml 以适应不同的构建变体。

Tar*_*ngh 4

您可以为项目的不同风格创建多个源集。默认情况下,只有main/工作室创建的源集包含将在不同变体之间共享的通用代码。有关如何创建和维护源集的更多详细信息,请参阅官方文档。

编辑-1

为了详细说明,您可以通过使用 build.gradle (模块级文件)并指定风格来创建项目的多种风格,例如 -

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

        }
        sit {
         initWith debug
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
}
Run Code Online (Sandbox Code Playgroud)

创建风格后,Gradle 同步您的项目。

现在您可以通过右键单击为每种风格创建 braze.xml Values folder >> New >> Values Resource File。键入文件 example braze.xml 的名称,然后在“源集”下选择要为其创建此文件的风味名称。如下图名称所示

在此输入图像描述

您可以重复此步骤,直到覆盖所有风味,然后每当您从构建变体切换 gradle 风味时,IDE 将自动开始使用该风味的指定文件。