You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

引入kotlinx-datetime导致KMM应用iOS构建失败如何解决

问题原因

该iOS端构建失败是kotlinx-datetime依赖版本与项目当前Kotlin版本不匹配导致的。
从报错日志可以看到你当前项目使用Kotlin 1.7.20、Konan编译器1.7.0,但引入的kotlinx-datetime 0.3.0是适配Kotlin 1.6.x系列的版本,Kotlin/Native跨版本依赖时会出现核心类描述符缺失的问题——你日志里的kotlin.time.TimeMark类在两个Kotlin版本间签名有变动,Native静态框架链接阶段找不到对应符号就会抛出编译错误。Android端基于JVM平台兼容性容错能力更强,因此不会触发该问题。

解决步骤
  • 打开共享模块的build.gradle.kts文件,修改commonMain依赖块中的kotlinx-datetime版本,升级到适配Kotlin 1.7.x的0.4.0版本,替换原有配置即可:
sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
        }
    }
    // 其余sourceSets配置保持原有内容不变
}
  • 清理项目旧构建缓存,在项目根目录执行终端命令:
    ./gradlew clean
  • 由于你创建项目时选择了CocoaPods集成方案,进入iosApp目录执行命令更新iOS端依赖配置,避免旧框架缓存残留:
    pod install
  • 重新构建iOS端即可正常运行,后续导入、调用LocalDate等kotlinx-datetime提供的API都不会再触发该报错。

补充说明:如果项目存在其他依赖约束无法升级kotlinx-datetime版本,也可以选择将项目Kotlin版本降级到1.6.21来匹配kotlinx-datetime 0.3.0,但降级Kotlin版本会影响KMM项目其他新API的可用性,优先选择升级依赖的方案。

内容的提问来源于stack exchange,提问作者Renaro Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 15:33:19