我有一个 Gradle Android 项目,有 4 种产品风格(每种产品都有自己独特的包名称)。这build.gradle
文件的性质非常简单:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
// All dependencies here
// ...
}
android {
// Usual stuff goes here
productFlavors {
flav1 {
packageName 'com.company.flav1'
versionName calcVersion()
}
flav2 {
packageName 'com.company.flav2'
versionName calcVersion()
}
flav3 {
packageName 'com.company.flav3'
versionName calcVersion()
}
flav4 {
packageName 'com.company.flav4'
versionName calcVersion()
}
}
// Other configurations
// ...
}
一切都很顺利,所需的资源也已合并,等等。现在我正在尝试使用 GCM 实现推送通知功能。根据文档,我必须声明我的应用程序的权限,如下所示:
<permission android:name="com.company.flav.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.company.flav.permission.C2D_MESSAGE" />
但我对所有 4 个应用程序使用单个清单文件(它们仅在应用程序资源和一些设置方面有所不同,这些设置位于资产文件夹中)。
所以我的问题是:如何为每种产品风格覆盖这些权限?
我用过:
<permission android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
在 Android 清单中 - 这似乎已正确解决。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)