Mac M1新建KMM项目Android构建正常iOS构建缺失ios_simulator_arm64报错
KMM iOS构建报错(ios_simulator_arm64目标缺失)修复方案
这个错误是M1/M2系列Arm架构Mac上创建KMM项目的常见适配问题,根因是当前项目的shared模块未声明对ios_simulator_arm64(Arm架构iOS模拟器)平台的构建支持,可通过以下步骤修复:
1. 调整shared模块构建配置
找到项目下的shared/build.gradle.kts文件(Groovy语法对应shared/build.gradle),修改Kotlin多平台的iOS目标配置:
kotlin { // 优先使用官方快捷配置,会自动适配当前设备的iOS模拟器架构 ios { binaries { framework { baseName = "shared" } } } sourceSets { // 补全Arm架构模拟器的源码集依赖关联 val iosMain by getting val iosSimulatorArm64Main by getting iosSimulatorArm64Main.dependsOn(iosMain) val iosTest by getting val iosSimulatorArm64Test by getting iosSimulatorArm64Test.dependsOn(iosTest) } }
如果上述快捷配置不生效,可以替换为按环境动态选择目标的写法:
kotlin { val iosTarget: (String, KotlinNativeTarget.() -> Unit) -> KotlinNativeTarget = if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true) ::iosArm64 // 真机构建用arm64目标 else ::iosSimulatorArm64 // 模拟器构建用arm64目标 iosTarget("ios") { binaries.framework { baseName = "shared" } } // 同上补全sourceSets配置 }
2. 清理缓存重新构建
- 项目根目录执行命令
./gradlew clean清理Android/KMP侧构建缓存 - 进入ios目录,删除
Pods文件夹和Podfile.lock文件,执行pod install重新安装iOS依赖 - 注意打开Xcode项目时必须选择后缀为
.xcworkspace的文件,不要直接打开.xcodeproj文件 - 重新执行iOS构建即可
内容的提问来源于stack exchange,提问作者Manajit Rath
相关产品推荐
相关产品推荐

