天天看點

使用Xcode上傳包到App Store時出現ERROR ITMS-90283: Invalid Provisioning Profile...的解決過程和解決方法

記錄這個問題,以便大家少踩坑,至少掉坑裡了有這個梯子可以參考。隻想看解決方法的,翻到最後看。

  • 問題現象:

用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!