我正在使用一个服务,需要在AndroidManifest
中设置API密钥,如下所示:
<meta-data
android:name="service_api_key"
android:value="@string/my_api_key" />
这个问题是我的应用程序有几种风格,我需要为每种风格设置不同的API密钥。每种flavor都需要有不同的API密钥才能进行调试和发布:
flavor1
- debug key: key1
- release key: key2
flavor2
- debug key: key3
- release key: key4
flavor3
- debug key: key5
- release key: key6
建议的方法是什么?
答案 0 :(得分:9)
建议的方法是什么?
步骤1:为每个构建变体(src/flavor1Debug/
,src/flavor1Release/
等)创建sourcesets,您需要的API密钥与{{1}中的API密钥不同}。
步骤2:在每个源集中,有一个src/main/
文件,其中包含res/values/strings.xml
的构建变体的值。
步骤3:啤酒。
答案 1 :(得分:1)
未经测试,但我想你可以试试这样的东西......
applicationVariants.all {variants ->
variant.productFlavors.all { flavor ->
flavorChoosed = " ${flavor.name}"
}
}
release {
switch(flavorChoosed){
case "flavor1":
resValue "string", "flavorId", apiKeyRealeseFlavor1
break
.....
}
}
debug{
switch(flavorChoosed){
case "flavor1":
resValue "string", "flavorId", apiKeyDebugFlavor1
break
.....
}
}
<meta-data
android:name="service_api_key"
android:value="${flavorId}" />
答案 2 :(得分:1)