提交iOS应用至App Store遇ERROR ITMS-90045权限问题求助
解决ITMS-90045代码签名权限错误
你碰到的ERROR ITMS-90045问题其实很好定位:UISupportedInterfaceOrientations这个配置键根本不属于代码签名权限(Entitlements)的范畴,它是Info.plist的专属配置项,现在错误地被塞进了签名授权文件里,才导致苹果审核报错。
问题本质
苹果的代码签名权限是用来管控应用的特殊功能权限(比如推送、iCloud、后台刷新这类),而UISupportedInterfaceOrientations是用来定义应用支持的屏幕方向的,这个配置只该出现在Info.plist中,绝对不能出现在签名的entitlements里。
一步步修复方案
- 检查并修正Entitlements文件:找到项目里的
.entitlements文件(一般和Info.plist在同一目录,或者在Xcode项目设置的「Signing & Capabilities」里能看到路径),打开后直接删掉UISupportedInterfaceOrientations这个键值对。 - 确认Info.plist的正确性:确保你的
Info.plist里确实保留了这个方向配置(这部分是完全合法的,不用动),示例配置如下:<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array> - 重置代码签名配置:在Xcode的「Signing & Capabilities」标签页,要是用的自动管理签名,可以先关闭再重新打开,让Xcode重新生成干净的entitlements文件;手动管理的话,确认
CODE_SIGN_ENTITLEMENTS指向的是正确的文件。 - 清理后重新归档:先执行
Product > Clean Build Folder清理旧构建缓存,然后重新归档提交,确保错误的签名配置被彻底清除。
特殊情况排查
要是找不到entitlements文件,或者确认文件里没有这个键,那大概率是Xcode构建时错误把Info.plist内容注入到了签名权限里,试试这两步:
- 删除项目的Derived Data目录(路径在
Xcode > Preferences > Locations > Derived Data,点击箭头打开文件夹后删掉对应项目的文件夹) - 检查Build Settings里的
CODE_SIGN_ENTITLEMENTS配置,确保没有指向错误的文件,或者配置了多余的内容
内容的提问来源于stack exchange,提问作者Lloyd Marshall
相关产品推荐
相关产品推荐

