10

我希望能够(同时)构建和安装我的应用程序的多个版本,针对不同的环境,例如开发、暂存,当然还有生产。

中的包名称AndroidManifest.xml似乎是这里的主要障碍,因为它是唯一标识应用程序的东西。我认为可以简单地在com.mydomain.prod, com.mydomain.stagingandcom.mydomain.dev或某种类似的约定之间切换,但到目前为止,我还没有找到适用于这种方法的包结构。

我可以采用什么策略来尽可能减少痛苦?

4

2 回答 2

8

使用 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/

这些链接可能有用:

于 2015-03-11T21:40:32.480 回答
0

我建议您使用“ant”构建工具,特别是“regexp”任务,该任务可用于替换某些文件中的文本(即根据正确的构建目标替换清单文件中的应用程序包名称)。您还可以为每个构建目标定义不同的属性文件(例如,“build_development.properties”以保存与构建开发环境产品相关的所有参数。)...希望这会有所帮助..

于 2015-03-11T20:37:43.887 回答