我们现在有一个使用 Retrofit 运行良好的 Android 应用程序。我们正在尝试自动化构建以进行测试和生产发布,以减少人为错误的可能性(即开发人员在为生产构建时忘记将基本 URL 指向生产......等)
我注意到 Retrofit 的 Base URL 是在类文件中定义的。有没有什么方法可以让我们将其配置在属性文件或 xml 中,以便我们可以使用 Gradle 脚本来选择要包含在构建中的正确文件?
谢谢
最佳答案
您可以在 buildTypes 中定义一个常量:
buildTypes {
debug {
buildConfigField "String", "API_URL", "\"https://url/pre/\""
}
release {
buildConfigField "String", "API_URL", "\"https://url/pro/\""
}
}
然后在改造构建器中使用它:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BuildConfig.API_URL)
.build();
请注意,如果您有不同的模块,则在每个模块中都定义了 BuildConfig。对于这种情况,我在 app 模块中定义了 buildTypes,并将 BuildConfig.API_URL 作为参数传递给带有改造构建器的模块。
关于android - 如何在 Retrofit for Android 中外部化 Base URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55518814/