Xcode13上传含iMessage扩展的应用到App Store报ITMS-90502错误如何解决
错误 ITMS-90502:"Invalid Bundle。您的二进制文件‘{Bundle id}’包含64位架构分片,因此您必须在Xcode项目的UIRequiredDeviceCapabilities键中添加"arm64"值。"
可执行修复步骤:
- 检查全量target的
UIRequiredDeviceCapabilities配置
包括主应用、iMessage扩展、所有内置扩展、第三方依赖target在内的所有target,都要在各自的Info.plist中给UIRequiredDeviceCapabilities数组添加arm64项。避免只配置主target遗漏扩展target的情况,可右键Info.plist选择「Open As - Source Code」,确认存在以下配置:<key>UIRequiredDeviceCapabilities</key> <array> <string>arm64</string> </array> - 修正架构配置规则
所有target的Architectures(ARCHS)统一设置为$(ARCHS_STANDARD),不要手动自定义架构值。Excluded Architectures配置中,仅给「iOS Simulator SDK」添加arm64排除项,不要给「Any iOS SDK」添加arm64排除,避免发布打包时丢失arm64架构分片。 - 调整发布包构建规则
所有target的Release模式下,Build Active Architecture Only设置为No,你之前设置为Yes的配置仅适用于开发调试阶段,发布打包需要关闭该选项才能构建全架构包。修改完成后执行「Product - Clean Build Folder」清理缓存后再重新打包。 - CocoaPods依赖配置修正(如果使用了CocoaPods)
在Podfile末尾添加以下规则,强制所有Pods依赖统一架构配置:
保存后执行post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ARCHS'] = '$(ARCHS_STANDARD)' config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' end end endpod install重新生成Pods项目后再打包。
内容的提问来源于stack exchange,提问作者Ahmed Safadi
相关产品推荐
相关产品推荐

