Xcode报错Building for iOS Simulator链接错误如何解决
报错修复方案
该报错本质是iOS模拟器编译时,链接到了为真机arm64架构编译的GoogleMaps二进制文件,新设备默认编译配置与你之前的可用环境不一致导致,按以下步骤操作即可解决:
- 清理全链路缓存,排除旧文件干扰
按顺序执行以下操作:- 打开Xcode,按下
Shift + Command + K清理项目编译缓存 - 完全退出Xcode,进入项目的
platforms/ios目录,执行pod deintegrate移除现有Pods依赖,手动删除该目录下的Podfile.lock文件、Pods文件夹 - 打开Xcode设置页进入
Locations项,点击Derived Data路径旁的文件夹图标,在弹出的访达窗口中删除当前项目对应的衍生数据文件夹
- 打开Xcode,按下
- 统一架构排除配置
打开ios目录下的.xcworkspace文件(注意不要打开.xcodeproj后缀的项目文件):- 选中项目主Target,进入
Build Settingstab,搜索Excluded Architectures,在Debug配置对应的Any iOS Simulator SDK条目下,添加arm64值,不要误配置到真机SDK条目下 - 选中Pods根项目,同样在
Build Settings > Excluded Architectures路径下,给Debug配置的Any iOS Simulator SDK条目添加arm64值 - 展开Pods的Targets列表,找到GoogleMaps对应的Target,重复上述排除arm64的配置操作
- 选中项目主Target,进入
- 固化Pod配置避免重置
打开ios目录下的Podfile文件,在文件末尾添加如下post_install钩子,防止后续执行pod install时把前面改的配置覆盖掉:
保存Podfile后,在ios目录执行post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' config.build_settings['VALIDATE_WORKSPACE'] = 'NO' config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES' end end endpod install --repo-update重新安装依赖 - 编译验证
依赖安装完成后重新打开.xcworkspace,选择任意iOS模拟器作为运行目标(不要选Generic iOS Device真机通用目标),直接编译即可。
特殊情况排查:如果以上操作完成后仍报错,检查项目中是否存在手动导入的GoogleMaps.framework真机版文件——如果之前提交代码时有人手动拖入过framework而非通过CocoaPods管理,直接删除手动导入的framework文件,重新执行pod install即可。
内容的提问来源于stack exchange,提问作者Ratnesh Gupta
相关产品推荐
相关产品推荐

