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

Xcode 15模拟器x86_64编译报错,后续操作引发新问题求助

Xcode 15 iOS模拟器运行报错解决方案

问题分析

报错building for 'iOS-simulator', but linking in object file ... built for 'iOS'的核心原因是:静态库libFMIceLinkOpus.a缺少iOS模拟器所需的x86_64架构,Xcode 15对架构兼容性的校验更严格,导致链接阶段失败。你之前添加x86_64到Excluded Architectures的操作方向有误,反而引发了脚本执行错误。

分步解决方案

1. 验证静态库架构支持

先确认该库是否包含模拟器架构,在终端执行命令:

lipo -info /{project path}/libs/IceLink/libFMIceLinkOpus.a
  • 如果输出中无x86_64,说明库本身不支持模拟器,需要联系IceLink官方获取同时包含真机(arm64)和模拟器(x86_64)的通用静态库,或自行编译支持模拟器的版本。

2. 修正项目与Pod配置

替换之前的Podfile脚本,针对模拟器和真机分别配置架构规则,避免全局排除架构:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            # 关闭仅构建活跃架构
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
            
            # 针对不同SDK设置排除架构
            if config.build_settings['SDKROOT'] == 'iphonesimulator'
                # 模拟器排除arm64架构
                config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
            else
                # 真机排除x86_64架构
                config.build_settings['EXCLUDED_ARCHS[sdk=iphoneos*]'] = 'x86_64'
            end
        end
    end
end

执行pod install更新配置后,在项目的Build Settings中:

  • 设置Architectures为Standard Architectures (arm64, x86_64)
  • 确保Excluded Architectures没有全局添加x86_64,而是通过上述Pod脚本分SDK配置。

3. 修复PhaseScriptExecution错误

若调整后仍出现脚本执行失败:

  • 检查项目的Build Phases中所有Run Script阶段,查看是否有硬编码指定架构(如固定写死arm64)的逻辑,替换为使用环境变量${ARCHS}动态获取当前构建架构。
  • 清理项目缓存:执行Command+Shift+K清理构建产物,再删除DerivedData目录:
rm -rf ~/Library/Developer/Xcode/DerivedData

之后重新构建项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:25:30