1. 程式人生 > >解決XCode8.1 用Ad Hoc打包出現的0xE8008016問題

解決XCode8.1 用Ad Hoc打包出現的0xE8008016問題

升級了XCode 8.1,用Ad Hoc 證書打包,出現了0xE8008016。這個問題在XCode7上沒出現,在XCode8上出現了。錯誤提示如下:
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.(0xE8008016)
改用了Archive方式打包,就沒有出現這個問題了。具體操作是

1Product-》Archive,完成後彈出Organizer介面;
2、在右邊選擇Export
,選擇Save for Ad Hoc Deployment; 3、選擇Development Team,過一會選擇Device Support; 4、一直點選Next5、選擇完成後ipa檔案存放的資料夾。

雖然我解決了這個問題,但是還是在網上搜索到了這個問題的其他解決方法,列舉出來分享給大家。
第一種:用itunes打包

1、先在專案的Target裡的General進行設定,把Signing下的Automatically manage singing取消
2、在Signing(Debug)和(Release)裡的Provisioning Profile選中已經配置好的證書(Wildcard那種)
3
、直接Build專案(⌘b) 4、Build完後在專案資料夾找到Products,看看xxx.app是否變成黑色。 5、開啟iTunes,把xxx.app拖入iTunes,會生成一個app,右鍵那個app的icon,用Finder開啟,會看到xxx.ipa的檔案,把此xxx.ipa拖入即可。

第二種:檢查TeamID

找到變換前後兩個賬號的teamID,這個可以到ituneconnect裡面,或者直接到project.pbxproj查詢,出問題的此刻,已經存在兩個不同的teamID。

查詢到切換的ID,把project.pbxproj工程檔案中的簽名ID全部手動替換成目標ID。DEVELOPMENT_TEAM = XXXX ; XXXX填寫新的teamID

根據Target數量的不同,可能有好幾處,全部替換成統一一個樣即可。

此問題在Xcode8beta版中已經存在,若有多個包名和賬號切換的工程,可作為參考。

第三種:檢查Capabilities

檢查AppID所設定的功能,一般預設開啟了Game Center,那麼就要在Capabilities把Game Center 開啟。如果開啟了推送,那麼就要在Capabilities把Push Notification開啟。諸如此類都要開啟。