记录这个问题,以便大家少踩坑,至少掉坑里了有这个梯子可以参考。只想看解决方法的,翻到最后看。
用Xcode在提交Mac Catelyst App到App store时,上传iOS包没有问题,上传mac包时出现错误,如下:
ERROR ITMS-90283: "Invalid Provisioning Profile. The provisioning profile included in the bundle com.company.XxxxxXxx [com.company.XxxxxXxx.pkg/Payload/XxxxxXxx.app] is invalid. [Invalid 'com.apple.application-identifier' entitlement value.] For more information, visit the macOS Developer Portal."
我的开发环境是:Xcode 11.4 (11E146),macOS 10.15.4 (19E287
这个问题的坑就在于上传iOS包没有问题,上传mac包就有问题,所以一开始没定位到关键点,略折腾了一下,包括苹果技术支持。
1、去开发者后台检查证书、描述文件是否有效,App ID是否选错,Xcode里是否一致,等。
结果:没有问题。
2、因为在错误信息里看到了“[Invalid 'com.apple.application-identifier' entitlement value.]”,所以以为mac catelyst是不是还不是特别完善,比较Xcode11.4才正式支持通用购买,和上一版创建catelyst app配置有所不同,所以,在“XxxxxXxx.entitlements”里我手动加入了键值,key为“com.apple.application-identifier”,值为“App前缀.com.company.XxxxxXxx”。
结果:上传错误依旧。
3、Xcode工程签名手动和自动管理都试了一次。
结果:上传错误依旧。
4、检查网络原因,因为用宽带xcode在Authenticating with the App Store时卡死没反应,后用手机热点才完成这一过程(其实这一过程卡就卡在xcode在更新组件/java包啥的没有完成,导致卡死现象,这网络原因你懂的)
结果:宽带、手机热点、DNS切换...上传错误依旧。
5、某次上传时的确认步骤时(显示引用权限、引用框架、ID等信息时),注意到了显示的Team ID以及AppID前缀(App ID Prefix);或者是错误对话框出现时,我导出了包,在包信息文件里看到的。总之,我注意到了这两者不一样,于是去开发者后台检查App ID。
结果:发现创建的这个程序的App ID的前缀果真和Team ID不一致,难道这就是罪魁祸首??
新问题:我检查了其它已在App Store上架的ios/mac程序,发现有的两者一致,也有不一致的,有个mac程序不一致还能成功上传,那为啥这次上传mac程序就不好使了,因为是Mac Catalyst原因吗?
于是,带着疑问给苹果技术支持提交了问题(晚上了,打不了电话了)。
上述解决过程中,也搜索到类似提问,苹果论坛有个一样问题ERROR ITMS-90283,但是无人回答。
第二天上海的苹果技术支持就电话来了,反应迅速给赞,他问我是否是转让的App啥的,最后问我你需要修改一下App ID前缀来试一下吗,因为我之前提交的表单里写了我估计可能是App ID前缀和Team ID不一致的原因,请他们来帮助诊断。
当然要来试一下了,得知这个操作需要美国那边工程师才能修改,因为疫情,那边估计要三天才有结果,好吧,为坚持工作的工程师加油。
结果隔了一天,到晚上,我试着上开发者后台去看,改过来了,两者一致了,速度还是很快,给赞。
将App ID前缀和Team ID改为一致后,重新下载发布时的描述文件,Xcode打包上传App Store,mac/iOS都顺利完成,OK,问题解决。
So, 以后在开发者后台创建新App时注意,选择App ID前缀时,注意选择Team ID(下拉列表默认选项不一定是Team ID),其它ID有可能是转让或续费带来的(反正我的App ID前缀已经一大堆了,然而我并没有任何转让过来的App,连苹果技术支持也纳闷)。
因为一旦创建新的App ID后,开发者是无法修改App ID Prefix的,需要苹果那边修改,请联系苹果技术支持,OK!