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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:50:37