iOS应用真机正常模拟器报错:x86_64架构缺失等Pods相关问题求助
解决iOS模拟器运行Pods项目的架构缺失与ld警告问题
嘿,我来帮你搞定这个模拟器跑不起来的麻烦!真机正常但模拟器报错,核心问题是x86_64架构缺失,再加上路径找不到的ld警告,咱们一步步来解决:
先搞定ld路径警告
那个directory not found for option '-F/Users/aaa/Documents/xxx/bbb'警告,本质是Xcode找不到指定的framework目录,操作很简单:
- 打开Xcode项目,进入Build Settings,搜索
Framework Search Paths - 找到那条
/Users/aaa/Documents/xxx/bbb路径:如果是路径拼写错误就修正;如果对应的文件夹已经被删掉,直接把这条路径删除即可
核心:解决x86_64架构缺失问题
模拟器依赖x86_64(Intel芯片Mac)或arm64(Apple Silicon Mac)架构,而你的Pods里有库只编译了真机用的arm架构,导致模拟器适配失败。试试下面几个方案:
方案1:检查系统框架的导入方式
看报错里提到的MobileCoreServices.tbd——这是苹果自带的系统框架,如果你是手动把它加到项目里的,很可能路径不对或者版本有问题:
- 进入项目的Build Phases > Link Binary With Libraries,找到
MobileCoreServices.framework,点击减号删掉 - 再点击加号,搜索
MobileCoreServices,选择系统自带的那个重新添加
方案2:修改Podfile强制编译x86_64架构
如果是第三方Pod库本身没适配模拟器,你可以在Podfile里添加全局配置,让所有Pods都包含模拟器架构:
- 打开项目根目录的
Podfile,追加这段代码:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| # 强制启用64位架构(包含x86_64) config.build_settings['ARCHS[sdk=iphonesimulator*]'] = '$(ARCHS_STANDARD_64_BIT)' # 关闭Bitcode(部分老库不支持Bitcode,会引发架构兼容问题) config.build_settings['ENABLE_BITCODE'] = 'NO' # 指定模拟器支持的架构 config.build_settings['VALID_ARCHS[sdk=iphonesimulator*]'] = 'x86_64 arm64' end end end
- 保存Podfile后,在终端执行命令重置Pods:
pod deintegrate && pod install
- 重启Xcode,用
Command + Shift + K清理项目,再重新编译模拟器
方案3:Apple Silicon Mac额外适配
如果你用的是M系列芯片的Mac,还要检查Xcode的架构排除设置:
- 打开Xcode的Preferences > Locations,确保Command Line Tools选择的是当前使用的Xcode版本
- 进入项目Build Settings,搜索
Excluded Architectures,确保Debug/Release模式下,模拟器(iphonesimulator)没有排除x86_64(如果默认排除了,手动添加x86_64或设置为$(inherited))
最后验证
如果还是有问题,你可以用lipo命令检查有问题的framework架构:
lipo -info /Users/aaa/Documents/xxxx/MobileCoreServices.framework/MobileCoreServices.tbd
如果输出里没有x86_64,说明这个framework确实没适配模拟器,要么换库的新版本,要么联系作者更新适配。
内容的提问来源于stack exchange,提问作者casillas
相关产品推荐
相关产品推荐

