我们现在有一个使用 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/

10-13 04:17