X-Code 12(M1芯片Mac环境)iOS应用64位支持缺失的提交问题问询
解决Xcode 12 + M1 Mac环境下App Store提交「缺失64位支持」报错
1. 核对项目与Target架构配置
- 打开Xcode项目,进入Build Settings,搜索
Architectures - 将
Architectures设置为Standard Architectures (arm64, x86_64),确保未手动添加32位架构(如armv7) - 清空
Valid Architectures字段(Xcode 12+已废弃该设置,留空会自动匹配标准架构),或仅保留arm64 - 把
Build Active Architecture Only的Release配置设为NO(Debug可保留YES,但Release必须编译全架构)
2. 清理项目并重新归档
- 执行
Product > Clean Build Folder(快捷键Cmd+Shift+K)清除旧编译缓存 - 关闭Xcode,删除Derived Data目录(路径:
~/Library/Developer/Xcode/DerivedData) - 重新打开Xcode,选择
Generic iOS Device作为编译目标,执行Product > Archive
3. 检查第三方依赖的架构兼容性
- 用
lipo命令验证第三方库的架构支持:lipo -info /path/to/your/framework,确保输出包含arm64 - 若依赖库无arm64支持:更新至最新版本,或替换为适配arm64的替代库
- 用CocoaPods管理依赖时,执行
pod deintegrate再pod install,强制拉取适配M1架构的版本
4. 验证归档包的架构信息
- 归档完成后,在Organizer中选中对应归档包,右键选择
Show in Finder - 右键归档包,选择
Show Package Contents,进入Products/Applications找到你的App文件 - 执行
lipo -info /path/to/your/App,确认输出包含arm64;若仅显示x86_64,说明编译目标错误,需重新核对设备设置
5. 确认SDK与部署目标配置
- 确保
Base SDK设置为Latest iOS(Xcode 12对应iOS 14+,满足官方iOS 8+要求) - 将
Deployment Target设置为iOS 11或更高(iOS 11起不再支持32位设备,可避免不必要的架构兼容问题)
内容的提问来源于stack exchange,提问作者Ba Nguyễn
相关产品推荐
相关产品推荐

