我希望能够(同时)构建和安装我的应用程序的多个版本,针对不同的环境,例如开发、暂存,当然还有生产。
中的包名称AndroidManifest.xml
似乎是这里的主要障碍,因为它是唯一标识应用程序的东西。我认为可以简单地在com.mydomain.prod
, com.mydomain.staging
andcom.mydomain.dev
或某种类似的约定之间切换,但到目前为止,我还没有找到适用于这种方法的包结构。
我可以采用什么策略来尽可能减少痛苦?
我希望能够(同时)构建和安装我的应用程序的多个版本,针对不同的环境,例如开发、暂存,当然还有生产。
中的包名称AndroidManifest.xml
似乎是这里的主要障碍,因为它是唯一标识应用程序的东西。我认为可以简单地在com.mydomain.prod
, com.mydomain.staging
andcom.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
}
}
}
每个风味属性都继承自defaultConfig
.
现在,在src
您的应用程序目录中,您可以在其中创建包含特定于风味的代码/资源的目录:
app/
|-- src/
|-- main/
|-- prod/
|-- staging/
|-- dev/
这些链接可能有用:
我建议您使用“ant”构建工具,特别是“regexp”任务,该任务可用于替换某些文件中的文本(即根据正确的构建目标替换清单文件中的应用程序包名称)。您还可以为每个构建目标定义不同的属性文件(例如,“build_development.properties”以保存与构建开发环境产品相关的所有参数。)...希望这会有所帮助..