gpt4 book ai didi

android - 具有 gradle 和 android 的不同 API 主机

转载 作者:行者123 更新时间:2023-11-29 14:51:24 25 4
gpt4 key购买 nike

我想知道是否可以使用 gradle 为每个构建提供不同的 API 主机。理想情况下,我想通过我的代码访问常量,所以当我进行 gradle 构建时,它构建 release.apk 以指向 http://example.com和 debug.apk 指向 http://debug.example.com .

我使用以下方法实现了这一点:

buildTypes {
debug {
buildConfig "public final static String API_HOST = \"http://debug.example.com\";"
}

release {
buildConfig "public final static String API_HOST = \"https://example.com\";"
}
}

但是看起来很脏

干杯

最佳答案

我认为当今 Gradle 功能的更好替代方案是同时指定 productFlavorsbuildTypes(示例如下)。

buildTypes 控制我用什么证书签名,以及 Proguard 是否运行。

productFlavors 控制预期环境,其中包括自定义资源以及不同的包名称,因此我可以同时安装它们。

然后我在 strings.xml 中为每个变体配置我的服务器地址并在运行时加载它。

src/dev/res/values/strings.xml
src/staging/res/values/strings.xml

来自“dev”变体的 strings.xml 示例:

<string name="config_url">http://com.example.debug</string>

build.gradle fragment :

productFlavors {
dev {
packageName "com.example.dev"
}

staging {
packageName "com.example.staging"
}
}

buildTypes {
debug {
versionNameSuffix " debug"
signingConfig signingConfigs.debug
}

release {
// A release build runs Proguard, and signs with a release certificate
zipAlign true
runProguard true
proguardFile 'proguard-project.txt'
proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
signingConfig signingConfigs.release
}
}

关于android - 具有 gradle 和 android 的不同 API 主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17057314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com