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

添加-Xallocator=std后KMM生成XCFramework失败:linkDebugFrameworkIosArm64报错

问题解决方案

步骤1:清理Kotlin Native缓存

错误提示缓存的库依赖缺失,先清理Konan缓存解决缓存不一致问题:

rm -rf ~/.konan/cache

同时执行Gradle清理任务:

./gradlew clean

步骤2:统一Ktor依赖版本

你的配置中Ktor依赖版本不统一(如ktor-client-core:2.3.4和ktor-client-content-negotiation:2.3.3),版本差异会引发编译链接冲突。将所有Ktor依赖改为同一版本,比如统一使用2.3.4:

// commonMain依赖
implementation("io.ktor:ktor-client-core:2.3.4")
implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.4")
implementation("io.ktor:ktor-client-content-negotiation:2.3.4")
implementation("io.ktor:ktor-client-logging:2.3.4")

// androidMain依赖
implementation("io.ktor:ktor-client-android:2.3.4")

// iosMain依赖
implementation("io.ktor:ktor-client-ios:2.3.4")

步骤3:调整编译器参数的作用范围

原代码给所有compilations添加-Xallocator=std参数,可能影响测试编译等非主编译流程导致缓存异常,修改为仅针对main编译添加参数:

listOf(
    iosX64(), iosArm64(), iosSimulatorArm64()
).forEach {
    it.binaries.framework {
        baseName = "MnghaDataSource"
        xcf.add(this)
    }
    // 仅给main编译添加allocator参数
    it.compilations.getByName("main") {
        compilerOptions.configure {
            freeCompilerArgs.add("-Xallocator=std")
        }
    }
}

步骤4:升级Kotlin版本(可选)

当前使用的Kotlin 1.8.21存在部分已知的内存管理器和编译缓存问题,升级到较新的稳定版本(如1.9.20)可规避这类问题,同时同步升级Serialization插件版本:

plugins {
    kotlin("multiplatform") version "1.9.20"
    id("com.android.library")
    kotlin("plugin.serialization") version "1.9.20"
}

完成以上步骤后,重新执行构建命令:

./gradlew assembleXCFramework

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:35:18