我希望能够构建和安装我的应用程序的多个版本(同时),针对不同的环境,如开发,暂存和生产.
AndroidManifest.xml中的软件包名称似乎是这里的主要障碍,因为它是唯一标识应用程序的内容.我认为可以简单地在com.mydomain.prod,com.mydomain.staging和com.mydomain.dev之间切换或某种类似的约定,但到目前为止,我还没有运气的包装结构对于这种方法.
我可以采用什么策略来尽可能地减轻疼痛?
解决方法
使用Gradle,您可以指定应用程序的不同“风格”.这是在build.gradle中完成的:
android {
// …
defaultConfig {
// …
}
productFlavors {
prod
applicationId "com.mydomain.prod"
}
staging {
applicationId "com.mydomain.staging"
}
dev {
applicationId "com.mydomain.dev"
versionCode 2
}
}
}
每个flavor属性都继承自defaultConfig.
现在,在应用程序的src目录中,您可以创建包含特定于特定于代码/资源的目录:
app/
|-- src/
|-- main/
|-- prod/
|-- staging/
|-- dev/
这些链接可能很有用:
> How to build customized Android application using Gradle
> Gradle Build Variants for your android project