首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态更改每种口味的调试/发布清单密钥

动态更改每种口味的调试/发布清单密钥
EN

Stack Overflow用户
提问于 2016-01-21 16:17:59
回答 3查看 2.1K关注 0票数 5

我使用的是在AndroidManifest中设置API键所需的一个服务,如下所示:

代码语言:javascript
复制
    <meta-data
        android:name="service_api_key"
        android:value="@string/my_api_key" />

问题是,我有几种口味的应用程序,我需要为每种口味设置不同的API键。对于调试和发布,每种风格都需要有不同的API键:

代码语言:javascript
复制
flavor1
- debug key: key1
- release key: key2

flavor2
- debug key: key3
- release key: key4

flavor3
- debug key: key5
- release key: key6

实现这一目标的推荐方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-21 16:32:20

实现这一目标的推荐方法是什么?

步骤1:为每个构建变量(src/flavor1Debug/src/flavor1Release/等)创建src/flavor1Debug/为此,您需要一个不同于在src/main/中拥有的API密钥。

步骤2:在每个源集中,有一个res/values/strings.xml文件,其中包含构建变体的my_api_key值。

第三步:啤酒。

票数 10
EN

Stack Overflow用户

发布于 2016-01-21 16:35:25

没有测试但我想你可以试试这样的东西..。

代码语言:javascript
复制
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}" />
票数 1
EN

Stack Overflow用户

发布于 2016-01-21 16:37:19

对于添加到gradle文件中的每个产品风味,您应该为值添加一个string.xml资源文件。

当您切换构建变体时,Android将足够聪明地获取构建的匹配值。

如果您没有指定一个,那么它默认为主一个。

编辑:

然后,对于源集,选择productFlavor的发行版或调试版本:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34928868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档