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

求助:Pods复制x86_64与arm64框架头文件引发多命令执行错误

iOS自定义Framework模拟器构建重复头文件错误解决

问题背景

给iOS应用添加同时包含x86_64和arm64架构的自定义Framework后,在MacOS上构建模拟器版本时,出现大量重复头文件定义错误。经排查,原因是Pods会同时从ios_x86_64_simulator和ios_arm64目录复制文件,导致文件冲突。

已尝试无效操作

  • 清理并重装Pods
  • 调整Build Phases执行顺序
  • 在项目及所有Target的Debug、Release配置中排除arm64架构

可行解决方案

1. Podfile中添加架构过滤逻辑

在Podfile末尾添加以下代码,让Pods根据当前Mac架构自动过滤模拟器不需要的架构,避免同时拉取双架构文件:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      next unless %w[Debug Release].include?(config.name)
      # 根据当前Mac架构设置模拟器排除架构
      arch = `uname -m`.chomp
      excluded_arch = arch == 'arm64' ? 'x86_64' : 'arm64'
      config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = excluded_arch
    end
  end
end

执行pod install重新同步Pods配置。

2. 修正自定义Framework的构建设置

打开自定义Framework的项目:

  • 选中模拟器Target,进入Build Settings
  • 找到EXCLUDED_ARCHS选项,针对模拟器SDK设置排除的架构(Apple Silicon Mac排除x86_64,Intel Mac排除arm64)
  • 重新编译Framework,替换项目中的旧版本

3. 彻底清理构建缓存

  • 删除Xcode全局构建缓存:rm -rf ~/Library/Developer/Xcode/DerivedData
  • 在Xcode中按Cmd+Shift+K清理当前项目的构建产物

4. 检查Framework的Pod依赖配置

确保Podfile中引入自定义Framework的路径正确,不要同时指向双架构目录:

# 正确写法:指向包含合并后架构的Framework目录
pod 'YourCustomFramework', :path => './Frameworks/YourCustomFramework'

内容的提问来源于stack exchange,提问作者Samo Kralj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:40:31