前言
Android开发中BuildConfig很方便,可以自动的生成是否Debug,版本名,版本号等属性
也可以通过gradle配置来自定义生成的属性
而KMP中并没有这样的方式,导致开发方面并不方便
而像DEBUG这样的属性如果手动去修改代码则非常容易出现问题
我都想用ksp写一个,好在发现有人写了一个,还很好用
yshrsmz/BuildKonfig: BuildConfig for Kotlin Multiplatform Project (github.com)
正文
使用这个库可以直接生成KMP的BuildConfig
//kmp的BuildConfig
buildkonfig {
packageName = "com.lt.dygzs.common.config"//包名
objectName = "BuildConfig"//类名
exposeObjectWithName = "BuildConfig"//类名
val version = 100
//common中的值
defaultConfigs {
buildConfigField(BOOLEAN, "DEBUG", isReleaseBuildType().not().toString())
buildConfigField(INT, "VERSION_CODE", version.toString())//设置全局的版本号
buildConfigField(STRING, "VERSION_NAME", version.toString().toCharArray().joinToString("."))//设置全局的版本名1.0.0
}
//特定target中的值
targetConfigs {
create("android") {
buildConfigField(BOOLEAN, "name", "value")
}
}
}
这样生成的类大概是这样
common:
public expect object BuildConfig {
public val DEBUG: Boolean
public val VERSION_CODE: Int
public val VERSION_NAME: String
}
android(或其他平台):
public actual object BuildConfig {
public actual val DEBUG: Boolean = true
public actual val VERSION_CODE: Int = 100
public actual val VERSION_NAME: String = "1.0.0"
public val name: String = "value"
}
嗯,很好用!
对Kotlin或KMP感兴趣的同学可以进Q群 101786950
如果这篇文章对您有帮助的话
可以扫码请我喝瓶饮料或咖啡(如果对什么比较感兴趣可以在备注里写出来)