2011-07-13 108 views
13

我已閱讀了很多主題,在這裏找不到像我的問題。我認爲這是一個簡單的解決方法,但我似乎無法找到答案。我正在使用Xcode 4.1 Gold Master。Xcode 4.1代碼簽名問題

基本上,當我存檔我的Mac應用程序時,它會經歷所有正常的過程。構建成功。然而,當我提交給應用程序商店,我得到以下信息回:

Invalid Code Signing Entitlements - Your application bundle's signature contains code 
signing entitlements that are not supported on Mac OS X; this may happen if your Mac OS X 
project was ported from iOS. Please check your Xcode project's code signing entitlements 
configuration, and remove any unneeded entitlements. 

Specifically, key "application-identifier" in "My App" is not supported. 

我的應用程序不會從iOS的移植,我從來沒有安裝的權利。幾個小時的挖掘後,我發現代碼符號階段是在這種格式生成.xcent文件:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>application-identifier</key> 
    <string>My.App.Identifier</string> 
    <key>com.apple.application-identifier</key> 
    <string>My.App.Identifier</string> 
</dict> 
</plist> 

的第一個關鍵是一個導致了問題。當我刪除它並強制使用相同的.xcent文件通過命令行退出應用程序時,該應用程序會通過。

我已經刪除並重新安裝xcode,看看是否有幫助...它不。

我知道這個文件的創建與配置文件有關。它似乎獲得了正確的數據,但添加了現有的標籤。我已經檢查了項目和構建設置,並且根本沒有代碼簽名權利。任何想法如何讓Xcode停止生成此密鑰?每次我想要提交到應用商店時,我都不太喜歡這樣做。

回答

13

我面臨同樣的問題。看完你的信息後,我調查了一下。

看起來像在構建過程中,.xcent文件是從位於/Developer/Platforms/MacOSX.platform/Entitlements.plist的文件生成的(它也可位於/Applications/Xcode.app/Contents/中開發者/平臺/ MacOSX.platform/Entitlements.plist)。

我編輯了這個文件,並用「com.apple.application-identifier」取代了「application-identifier」。 所以現在.xcent文件只包含:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>com.apple.application-identifier</key> 
    <string>33R9UFHX3C.com.mycompany.myapp</string> 
</dict> 
</plist> 

不過,我當我建立並上傳仍然面臨着無效的二進制錯誤。

編輯:它實際上工作。 (我有另一個非相關的問題)

+0

我會在下一次構建期間嘗試這個嘗試!感謝您的建議。 –

+0

好找!再次感謝您的幫助! –

+0

也爲我工作。謝謝。 – Guillaume