2010-02-01 68 views
5

我們終於到了將第一個iPhone應用程序提交到應用程序商店(或正在嘗試)的地步,但我似乎無法讓iTunes Connect接受上傳。無法將應用程序二進制文件上傳到App Store

我曾嘗試通過網站(「您上傳的二進制文件無效,簽名無效,或未使用Apple提交證書進行簽名。」)和Application Loader(「Info.plist確實不包含CFBundleResourceSpecification「)。

經過大量的閱讀(包括questions like these),再讀書,和google搜索,我可以說:

  • 我敢肯定,捆綁標識符的AppID匹配。
  • 有一個Icon.png,它是一個57x57 px PNG文件,這就是Info.plist中的確切名稱。
  • 我正在做一個設備,而不是模擬器,構建。
  • 簽名過程成功:生成結果顯示此消息,並且運行codesign -vvvv MyApp.app表示沒有問題。
  • ZIP文件路徑中沒有奇怪的字符。
  • 我已經刪除了構建文件夾,並重新構建了二進制文件很多次。現在

,這是事實,在內置應用程序,Info.plist中不包含CFBundleResourceSpecification關鍵,但它並不清楚,我在那裏該值應該來自於,或者我需要添加哪些做這個工作。 (我可以找到使用蘋果的搜索的唯一參考是一些code signing release notes ...但是,正如我上面提到的,代碼簽名步驟是成功的,據我所知道。)

有沒有人跑過這個任何解釋我還沒有提到的問題?

編輯:下面是代碼簽名生成的步驟(略有刪節)輸出,FWIW:

code signing screenshot http://img70.yfrog.com/img70/8988/codesign.png

+0

你以前能夠上傳任何東西嗎?你確定你的證書全部有效並且沒有過期嗎? – fbrereto 2010-02-01 21:27:45

+0

另外,你確定你正在爲3.1.2構建而不是說3.2測試版? – Aaron 2010-02-01 21:31:46

+0

@fbrereto這是我們的第一個應用程序提交。分發配置文件絕對沒有過期。 (我希望如果證書無效,構建的代碼步驟不會是綠色的。) – 2010-02-01 21:38:01

回答

10

這個問題似乎已經是我在我的應用程序使用json-framework,並且包括它作爲每the instructions in the wiki額外的SDK。我的猜測是,XCode對> 1 SDK的存在感到困惑,因此找不到默認的ResourceRules.plist。

我發現了兩個解決方案(當然,解決辦法,反正):

  1. 使用「代碼簽名資源規則路徑」構建設置(默認情況下爲空)來指定文件路徑的XCode應該使用:$(SDKROOT)/ResourceRules.plist。這是有效的,似乎合理無害,但令人沮喪的是,XCode應該能夠自己解決這個問題。 (我在json-framework上提交的very old issue中找到了此解決方案。)
  2. 請勿使用SDK方法。相反,只需將文件直接包含到項目中,並使用本地路徑更新#import語句。這是我最終採取的方法,因爲我們做出了將所有外部依賴項摺疊到項目本身的一般決定(以便其他開發人員在他們的機器上啓動和運行的配置較少)。

我不知道這是否是在XCode中的一個錯誤,或者一些錯誤的JSON框架,但我萬一已經對後者filed an issue

更新,2010年6月30日:我提交的問題已經結束,並且Brautaset先生計劃在下一個版本(2.3)中刪除對SDK選項的支持。此外,code now lives on GitHub,儘管目前Google代碼頁仍然存在。

+0

我soooo愛你的男人。剛剛遇到同樣的問題,我的頭撞了近一個小時。我也安裝了Xcode 3.2.2 beta,所以開始考慮重新安裝所有的東西。 你統治! – 2010-03-24 21:40:16

+0

我有一個非常類似的問題,我正在使用的核心繪圖SDK。如上所述設置「代碼簽名資源規則路徑」解決了我的問題。非常感謝。 – aogan 2010-08-23 23:48:30

0

你確定你與分佈建設,而不是發展,證書和mobileprovision?

+0

是的。代碼簽名標識設置爲我們的分發配置文件,並且代碼簽名構建步驟顯示正確的配置文件名稱。 – 2010-02-01 21:42:44

0

我假設你正在上傳一個.zip文件。

我剛剛檢查了一個我上傳的應用程序,而CFBundleResourceSpecification只在簽名版本(即設備版本)中。

+0

是的,上傳一個ZIP文件。 – 2010-02-03 17:15:02

+0

當我創建App Store發行版的.mobileprovision文件時,我處於相同的過程中,設備部分顯示爲灰色,我無法選擇任何內容,爲什麼? – 2010-10-10 20:14:06

0

你在做任何你的建築/複製/壓縮從命令行嗎?如果是這樣,你必須非常小心的符號鏈接。 .app帶有一個子目錄作爲另一個的符號鏈接,如果你複製它或壓縮它沒有正確的標誌,它會硬拷貝內容,這與編碼簽名混淆。

這發生在我身上 - 最糟糕的部分是,ad-hoc構建工作正常,沒有符號鏈接,所以直到應用商店構建時纔會發現問題。

+0

通過XCode執行所有構建,並嘗試從命令行和(通常)通過Finder的壓縮菜單選項壓縮這兩個文件。 (我看到了一些提及符號鏈接問題的討論。) – 2010-02-03 17:16:24

1

對於我來說,檢查所有的東西(協同設計,圖標文件...),但你不能上傳應用程序後,嘗試刪除內置文件。記住複製file.app來壓縮你的應用程序。

0

對我來說,解決方案是創建一個分佈式認證: Apple Developer Provisioning Portal

+0

這當然是向App Store提交*任何內容的必要步驟,但也是一個預期的和有據可查的步驟。這不是原因造成的原因。 – 2011-02-10 23:50:26

相關問題