我有同一个应用程序的多个版本,每个版本使用不同的应用程序ID。我还拥有多个依赖于应用程序ID的提供程序(以允许在一次设备上并行安装所有口味)。
我已经在gradle文件中为这些提供者定义了权限,如下所示:
defaultConfig {
applicationId "xxxxxxxxx"
...
// Create a string resource for the app ID so it can be referenced from XML files
resValue("string", "applicationId", "\"${applicationId}\"")
// Create a property for the FileProvider authority.
def fileProviderAuthorityValue = applicationId + ".Files"
// Create a placeholder property to use in the manifest.
manifestPlaceholders.put("fileProviderAuthority", fileProviderAuthorityValue)
// Add a new field for the authority to the BuildConfig class.
buildConfigField("String", "FILE_PROVIDER_AUTHORITY", "\"${fileProviderAuthorityValue}\"")
...
}
productFlavors {
flavorA {
applicationId "yyyyyyyyy"
....
}
}
问题在于,风味构建不会使用新的应用程序ID覆盖resValue或fileProviderAuthorityValue,而是使用defaultConfig中的ID。
我只希望定义一次,而只是更改应用程序ID,以便可以相应地更新变量。
我如何实现这一目标,而无需复制风味本身的整个代码(顺便说一句)?