在清单中使用变量
Posted
技术标签:
【中文标题】在清单中使用变量【英文标题】:Use variables in manifest 【发布时间】:2019-09-23 15:48:51 【问题描述】:在android中集成Branch-io
等一些库需要在项目清单中定义元数据。其中一些变量就像TestMode
<meta-data android:name="io.branch.sdk.TestMode" android:value="true" />
因此,当我们要发布应用程序时,我们应该将其更改为 False。
有没有办法根据BuildType
在某处定义一个变量并将其分配给元数据?
【问题讨论】:
【参考方案1】:您可以通过将 manifestPlaceholders 添加到您的 build.gradle 文件中来做到这一点:
android
...
buildTypes
debug
manifestPlaceholders = [isBranchSdkInTestMode:"true"]
...
release
manifestPlaceholders = [isBranchSdkInTestMode:"false"]
...
...
在AndroidManifest.xml中,可以使用$isBranchSdkInTestMode
:
<meta-data android:name="io.branch.sdk.TestMode" android:value="$isBranchSdkInTestMode" />
【讨论】:
【参考方案2】:是的,您可以将构建变量从 gradle 注入到清单中,这是通过将变量添加到 build.gradle
来完成的:
android
defaultConfig
manifestPlaceholders = [hostName:"www.example.com"]
deployConfg
manifestPlaceholders = [hostName:"www.prod-server.com"]
...
然后在您的清单中,您可以通过以下方式获取它:
<intent-filter ... >
<data android:scheme="http" android:host="$hostName" ... />
...
</intent-filter>
你可以阅读更多关于它是如何工作的here。
【讨论】:
以上是关于在清单中使用变量的主要内容,如果未能解决你的问题,请参考以下文章
如何编写yaml格式的Ansible主机清单(inventory)及清单变量使用Demo
如何编写yaml格式的Ansible主机清单(inventory)及清单变量使用Demo