2010-09-06 135 views
0

這是我第一個提交到應用程序商店的應用程序,我根據蘋果指南執行了所有操作,但是當我最終嘗試使用分發配置進行構建時,出現一個錯誤和一個警告。這是我編寫錯誤和警告的日誌,我想知道是否有人能告訴我這裏發生了什麼。應用程序失敗的代碼簽名驗證

warning: Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011) 
failed to extract requirements data: 1 
/Users/xxxx/Desktop/xxxx/build/Distribution-iphoneos/xxxxx.app: object file format invalid or unsuitable 
failed to extract entitlements: 1 
- (null) 

此外,

/Users/xxxxxx/Desktop/xxxxx/build/Distribution-iphoneos/xxxxxxx.app: object file format invalid or unsuitable 
Command /usr/bin/codesign failed with exit code 1 

這是怎麼回事?

回答

0

您必須確保在您的構建設置中選擇了正確的證書。對於每個配置文件,您有不同的設置。因此,如果您使用「Release」作爲AppStore版本,那麼您必須轉到您的項目設置並將「Code Sign Identity」設置爲正確的開發人員證書。

並對目標做同樣的事情,我想這就是爲什麼你得到這些錯誤信息。

0

關於錯誤: ... *的.app:目標文件格式無效或不適合

  1. 更改爲 「可執行文件」(又名,CFBundleExecutable)的Info.plist設置的東西從不同產品名稱構建設置可能會跳過此錯誤。在這種情況下,快速修復是將您的「可執行文件」Info.plist屬性恢復到以下值:$ {EXECUTABLE_NAME}。發生這種情況的原因是因爲可執行文件名是由PRODUCT_NAME的EXECUTABLE_PREFIX和EXECUTABLE_SUFFIX構建設置的Xcode值派生的,並且Xcode在打包應用程序後驗證/堅持這種格式。很多時候(並且默認情況下)EXECUTABLE_PREFIX和EXECUTABLE_SUFFIX都是空的,所以可執行文件名稱與產品名稱相匹配。因此,設置「可執行文件」info.plist設置等於產品名稱版本設置的值將在技術上有效(只要可執行文件前綴和後綴版本設置保持空白),但將其值恢復爲$ {EXECUTABLE_NAME}是最好的。

  2. 此錯誤的另一個原因是由於Xcode項目上的代碼簽名相關生成設置格式不正確或代碼簽名設置略有不同,推薦設置不同。您可以使用以下指南來確保您的項目和鑰匙串符合代碼簽名的所有要求,並特別注意數字,以檢查您的設置是否完全符合Apple推薦的內容。以下推薦部分參考指南:"Understanding and Resolving Code Signing Issues"具體而言,請參閱「驗證密鑰鏈配置」和「驗證Xcode項目配置」部分: 。

如果上述錯誤仍然存​​在,則問題可能是Xcode項目特有的問題,而您的簽名標識存在固有問題。因此,我建議使用當前版本的Xcode創建一個新的Xcode項目,並將現有代碼,資源和框架遷移到新項目中,並查看代碼符號錯誤是否仍然存在。

祝你好運,

相關問題