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

Kotlin Multiplatform库导出为.framework后在Xcode运行崩溃求助

问题排查与解决方向

以下是可能导致该崩溃问题的原因及对应的解决思路:

  • 架构不兼容
    你生成的是iosSimulatorArm64架构的framework,若你的Mac是Intel芯片(x86_64架构),或者Xcode运行时选择了x86_64模拟器目标,会因架构不匹配触发崩溃。
    解决:要么切换到Apple Silicon模拟器运行,要么修改KMM配置同时生成多模拟器架构的fat framework,配置示例:

    iosSimulatorArm64() {
        binaries {
            framework {
                baseName = "TestLibrary"
            }
        }
    }
    iosX64() {
        binaries {
            framework {
                baseName = "TestLibrary"
            }
        }
    }
    // 执行构建后用lipo命令合并架构:
    // lipo -create build/bin/iosX64/framework/TestLibrary.framework/TestLibrary build/bin/iosSimulatorArm64/framework/TestLibrary.framework/TestLibrary -output TestLibrary.framework/TestLibrary
    
  • KMM插件版本未同步升级
    仅升级Kotlin语言版本到1.9.21,但未同步更新kotlin-multiplatform插件版本,会导致构建出的framework存在兼容性问题,加载时崩溃。
    解决:在项目根目录的build.gradle.kts中,将KMM插件版本更新为与Kotlin版本匹配的1.9.21:

    plugins {
        kotlin("multiplatform") version "1.9.21" apply false
    }
    
  • Xcode中Framework嵌入配置错误
    引入framework时,若未设置Embed & Sign,会导致运行时无法找到framework文件,触发崩溃。
    解决:在Xcode项目的General标签页,找到Frameworks, Libraries, and Embedded Content,将TestLibrary.framework的Embed选项设置为Embed & Sign。

  • 缺少Kotlin标准库依赖
    KMM生成的framework依赖Kotlin标准库组件,若Xcode项目未自动引入这些依赖,加载framework时会因缺失依赖崩溃。
    解决:在KMM的framework配置中开启自动导出Kotlin标准库,配置示例:

    iosSimulatorArm64() {
        binaries {
            framework {
                baseName = "TestLibrary"
                export(kotlin("stdlib"))
            }
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:56:03