Xcode13 M1芯片设备更新Pods后出现arm64架构Swift源文件编译错误
解决方案
- 第一步:在Podfile末尾添加如下后置配置,避免你手动修改的Pods项目配置被后续pod install操作自动覆盖:
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" # 可根据项目实际使用的Swift版本调整数值 config.build_settings["SWIFT_VERSION"] = "5.0" # 移除依赖默认的低部署目标限制,避免版本不兼容报错 config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' end end end
添加完成后删除项目根目录下的Pods文件夹、Podfile.lock文件,同时删除Xcode全局衍生数据目录~/Library/Developer/Xcode/DerivedData下的所有内容,重新执行pod install生成全新的Pods项目后再尝试编译。
- 第二步:核对Alamofire版本与项目最低部署版本的兼容性。最新版Alamofire 5.x要求项目最低支持iOS 10.0及以上,如果你的项目部署目标低于该版本,要么上调项目的最低iOS支持版本,要么在Podfile中固定兼容低版本系统的Alamofire版本:
示例:固定Alamofire为支持iOS 9.0的4.x版本:
pod 'Alamofire', '~> 4.9.1'
第三步:确认pod install命令未附加架构转译前缀。M1芯片Mac上如果所有依赖都已支持arm64架构,不要使用
arch -x86_64 pod install执行依赖安装,直接运行原生的pod install即可,强制x86转译安装会导致依赖产物不符合真机的arm64架构要求,引发编译失败。第四步:检查主项目的Swift语言版本配置。最新版Alamofire要求Swift 5.0及以上版本,你可以在Xcode主项目的Build Settings中搜索「Swift Language Version」,确认配置不低于依赖要求的最低版本。
内容的提问来源于stack exchange,提问作者Nirmit Dagly
相关产品推荐
相关产品推荐

