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

KMM集成XCTest后iOS模拟器构建报错:架构不匹配求助

KMM iOS UI测试架构不兼容问题排查思路

1. 核对共享库的架构目标配置

  • 在KMM项目的build.gradle.kts(或build.gradle)中,确认iOS目标覆盖模拟器和真机的所需架构:
    kotlin {
        // M1模拟器的arm64架构
        iosSimulatorArm64 {
            binaries.framework {
                baseName = "shared"
            }
        }
        // Rosetta模式下的x86_64模拟器架构
        iosX64 {
            binaries.framework {
                baseName = "shared"
            }
        }
        // 真机arm64架构
        iosArm64 {
            binaries.framework {
                baseName = "shared"
            }
        }
    }
    
  • 检查Xcode中UI测试Target的Build Settings -> Architectures,设置为Standard Architectures (arm64, x86_64),确保同时支持两种模拟器架构。

2. 校验XCTest框架的链接配置

  • 打开Xcode中UI测试Target的Build Phases -> Link Binary With Libraries,确认XCTest.framework是Xcode自动关联的,而非手动添加的真机版本。
  • 检查XCTest.def文件,确保没有硬编码指定真机架构的XCTest路径,保持默认的-framework XCTest配置即可,Xcode会根据构建目标自动选择对应版本。

3. 修复embedAndSignAppleFrameworkForXcode的NO-SOURCE问题

  • 切换Xcode到Rosetta模式后,构建架构变为x86_64,修改Run Script脚本,根据当前架构指定对应的Gradle任务参数:
    # 替换原有的embedAndSignAppleFrameworkForXcode执行命令
    if [ "${ARCHS}" = "x86_64" ]; then
        ./gradlew :shared:embedAndSignAppleFrameworkForXcode -Pkotlin.native.cocoapods.target=x86_64
    elif [ "${ARCHS}" = "arm64" ]; then
        ./gradlew :shared:embedAndSignAppleFrameworkForXcode -Pkotlin.native.cocoapods.target=iosSimulatorArm64
    fi
    
  • 清理构建缓存:执行终端命令./gradlew clean,再在Xcode中选择Product -> Clean Build Folder,之后重新构建项目。

4. 解决iOS Simulator版本不匹配问题

  • 打开Xcode的Settings -> Locations,确认Command Line Tools选择的版本与当前打开的Xcode版本一致。
  • 检查UI测试Target的Build Settings -> iOS Deployment Target,确保其版本不高于当前使用的Simulator的iOS版本。
  • 完全退出Xcode和Simulator,重新打开后再尝试运行测试,避免缓存导致的版本识别错误。

5. 检查KMM插件与Gradle版本兼容性

  • 确认项目使用的KMM插件和Gradle版本兼容,建议升级到最新稳定版。在settings.gradle.kts中查看插件版本:
    plugins {
        id("org.jetbrains.kotlin.multiplatform") version "1.9.20" apply false
        // 其他插件版本也需对应匹配
    }
    
  • 旧版本插件可能存在M1架构支持缺陷,升级后可解决部分架构适配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:15:32