gradle-kotlin-dsl - 在 KMM 中定义全局配置变量

标签 gradle-kotlin-dsl kotlin-multiplatform kmm

在原生 android 项目中,我们可以定义 BuildConfig 变量,这些变量可以根据所选的构建类型(调试或发布)进行更改。为此,我们可以在应用程序级别的 gradle 文件中添加以下代码

buildTypes {
    release {
        buildConfigField 'String', "BASE_URL", '"https://stackoverflow.com/"'
    }
    debug {
        buildConfigField 'String', "BASE_URL", '"https://qa.stackoverflow.com/"'
    }
}
如果可能的话,我期待创建这样的全局配置变量,可以从共享模块以及 Android 和 iOS 模块访问。我怎么能做到这一点?

最佳答案

您可以查看 BuildKonfig
例如:

buildkonfig {
    packageName = "com.halcyonmobile.multiplatformplayground"
    val baseUrl = "baseUrl"
    defaultConfigs {
        buildConfigField(
            Type.STRING,
            baseUrl,
            "https://halcyon-multiplatform-backend.herokuapp.com/"
        )
    }
    defaultConfigs("dev") {
        buildConfigField(Type.STRING, baseUrl, "http://0.0.0.0:8080/")
    }
}
(来自 https://github.com/halcyonmobile/MultiplatformPlayground/blob/master/common/build.gradle.kts 的示例)

关于gradle-kotlin-dsl - 在 KMM 中定义全局配置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67776528/

相关文章:

Gradle 无法从应用的子脚本中识别插件任务

gradle - 使用 gradle kotlin-dsl 覆盖 spring boot 依赖版本

gradle - 如何在 Gradle 中延迟获取主要 sourceSets

android - 将 Ktor 添加到 Kotlin Multiplatform Mobile 导致未解析的引用 : HttpClient

android - 在根项目 buildscript 中使用复合构建中的 Gradle 插件

kotlin - 如何在 Kotlin Compose Desktop 中让 Enter 键移动焦点?

swift - KMM iOS 崩溃,因为 `Flow` 没有正确抛出,异常与 @Throws 指定的类不匹配

android - NoClassDefFoundError kotlinx 序列化

android - 任务 ':shared:podInstall' 执行失败