特定风味+类型组合的清单

Posted

技术标签:

【中文标题】特定风味+类型组合的清单【英文标题】:Manifest for specific flavor+type combination 【发布时间】:2018-09-20 07:55:36 【问题描述】:

在我的应用中,我有两个风味维度:deviceenvironment

还有这样的味道:

standard 
  dimension = "device"
  ...

custom 
 dimension = "device"
 ...

dev 
  dimension = "environment"
  ...

prod 
 dimension = "environment"
 ...

现在我想在清单中为 customRelease 组合提供一些特定的东西(不管“环境”风味维度)。

我创建了一个文件src/customRelease/androidManifest.xml,但 Android Studio 确实看到了这个文件。 如果我将清单放入src/customDevRelease/AndroidManifest.xml,那么这对我有用,但我还需要将清单放在这里src/customProdRelease/AndroidManifest.xml,这不好。

【问题讨论】:

【参考方案1】:

我通过为一些构建变体设置清单路径解决了这个问题:

def manifestSkygolfReleaseFile = 'src/customRelease/AndroidManifest.xml'        

sourceSets 
    customDevRelease 
        manifest.srcFile manifestSkygolfReleaseFile
    

    customProdRelease 
        manifest.srcFile manifestSkygolfReleaseFile
    

这不是一个理想的解决方案,因为将来如果我添加另一种类型的环境(测试),我需要不要忘记向 gradle 添加一段代码:

    customTestRelease 
        manifest.srcFile manifestSkygolfReleaseFile
    

更糟糕的是,我的实际应用有 4 个风味维度。

【讨论】:

以上是关于特定风味+类型组合的清单的主要内容,如果未能解决你的问题,请参考以下文章

Android多版本flavor配置之资源文件和清单文件合并介绍

Android多版本flavor配置之资源文件和清单文件合并介绍

定义特定风味的buildconfigfield和buildType

由于这个原因,在.net世界中使用了清单

如何在 django rest 框架中仅使用特定变体对象将项目添加到愿望清单?

如何创建清单文件以将我的可执行文件/插件指向我的特定版本的 Qt.dll?