M1 Mac上KMM项目Xcode构建失败求助
解决M1 Mac上KMM项目Xcode构建依赖缺失问题
问题核心原因
com.russhwolf:multiplatform-settings:0.7.3版本发布时未适配M1模拟器的ios_simulator_arm64架构,导致Xcode构建时无法找到对应依赖变体。
解决方案
1. 升级依赖版本
将multiplatform-settings升级至0.8.0及以上版本(该版本开始正式支持iosSimulatorArm64架构)。在shared模块的build.gradle.kts中修改依赖:
dependencies { implementation("com.russhwolf:multiplatform-settings:0.8.0") // 保留其他原有依赖 }
修改后执行Gradle同步,再尝试构建。
2. 确保Gradle配置兼容M1架构
在项目根目录的gradle.properties中添加以下配置:
kotlin.mpp.enableGranularSourceSetsMetadata=true kotlin.native.enableDependencyPropagation=false
同时在shared模块的build.gradle.kts中,确保iOS目标配置覆盖所需架构:
kotlin { ios { binaries { framework { baseName = "shared" } } // 启用默认层级,自动包含所有iOS架构 targetHierarchy.default() } // 或者手动指定架构(二选一即可) // iosSimulatorArm64() // iosX64() // iosArm64() }
3. 清理缓存后重新构建
- 执行Gradle清理命令:
./gradlew clean - 清理Xcode派生数据:
rm -rf ~/Library/Developer/Xcode/DerivedData - 关闭所有IDE后重启,先在Android Studio中完成shared模块的构建,再切换到Xcode执行构建。
4. 备选:兼容Xcode构建脚本(若仍有问题)
如果上述步骤无效,可尝试在Xcode的PhaseScriptExecution脚本前添加arch -x86_64,强制以x86兼容模式运行Gradle命令:
arch -x86_64 "$HOME/.gradle/wrapper/dists/gradle-<版本号>-bin/.../gradle" :shared:embedAndSignAppleFrameworkForXcode
内容的提问来源于stack exchange,提问作者Lachtan
相关产品推荐
相关产品推荐

