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

KMM项目无法找到iOS Framework,Gradle同步报错求助

解决KMM无CocoaPods引入iOS Framework时的cinterop模块找不到问题

报错信息

  • Gradle同步提示: :shared:iosArm64Main: cinterop file: /Users/luis.garcia/Desktop/kmp-crash/shared/build/classes/kotlin/iosArm64/main/cinterop/shared-cinterop-luismafw.klib 不存在
  • 伴随异常:Exception in thread "main" java.lang.Error: /var/folders/h_/qb6wf4y90lz8c2blq8d3xbk80000gq/T/15310463132579371666.m:1:9: fatal error: module 'luismafw' not found

问题根源

  1. compilerOpts路径错误:-F参数后应指向framework所在的父目录,而非framework文件本身;
  2. .def文件配置缺失:未正确声明需要导入的iOS framework模块;
  3. 静态framework链接参数不全:静态库可能需要额外参数避免符号丢失。

修复步骤

1. 修正cinterop的compilerOpts路径

修改build.gradle.kts中cinterop的compilerOpts,将-F后的路径改为framework所在的父目录:

listOf(
    iosX64(),
    iosArm64(),
    iosSimulatorArm64()
).forEach {

    it.compilations.getByName("main") {
        val luismafw by cinterops.creating {
            defFile("src/nativeInterop/cinterop/luismafw.def")
            compilerOpts(
                "-framework",
                "luismafw",
                // 改为framework所在的父目录
                "-F/Users/luis.garcia/Desktop/kmp-crash/iosApp/"
            )
        }
    }
    // 其余配置保持不变
}

2. 完善.def文件内容

打开src/nativeInterop/cinterop/luismafw.def,添加模块声明(如果是模块化framework):

modules = luismafw

如果framework基于头文件暴露接口,补充头文件和路径配置:

headers = luismafw.h
compilerOpts = -F/Users/luis.garcia/Desktop/kmp-crash/iosApp/

3. 调整静态framework的链接参数

在binaries.all的linkerOpts中添加-ObjC参数,确保静态库符号被正确链接:

it.binaries.all {
    linkerOpts(
        "-framework",
        "luismafw",
        "-F/Users/luis.garcia/Desktop/kmp-crash/iosApp/",
        "-ObjC"
    )
}

4. 清理缓存并重新构建

  • 执行终端命令清理构建缓存:
    ./gradlew clean
    
  • 手动触发cinterop绑定生成:
    ./gradlew :shared:iosArm64MainCinteropLuismafw
    
  • 重新同步Gradle项目。

验证

在iosMain源码中导入framework并测试调用:

import luismafw.*

// 调用framework中的方法/类
fun testFramework() {
    // 示例:LuismaFWClass.doSomething()
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 13:42:52