2012-02-21 70 views
1

的Xcode 4.3之前,我用這個方法來提交申請到應用程序商店:的XCode 4.3代碼簽名錯誤

- 編譯與被應用程序的構建設置 內配置了相應的簽名證書的應用程序 - 分發使用Xcode內置的提交過程將應用程序導入應用程序商店或客戶端。當我被要求選擇簽署該應用程序的簽名證書時,我總是選擇「不要辭職」。

但是,Xcode 4.3中不存在「不要辭職」選項。因此,我的應用程序已經辭職,並且最終會出現錯誤消息,說明代碼簽名驗證失敗。

有沒有辦法解決這個問題?

回答

1

我發現代碼簽名的編譯錯誤是由於Xcode 4.3中的一個bug造成的。正如許多其他人在Apple的開發人員論壇和我自己中指出的,如果您的應用程序包含映像包,Xcode會抱怨代碼對您的應用程序進行簽名的情況很多!所以,我刪除了包含圖像的包,並將這些圖像作爲單獨的文件重新導入。我能夠以這種方式編譯Ad Hoc的應用程序,但它不能用該包進行編譯。另外,就「不辭職」而言,我注意到即使應用程序已經在另一步驟中進行了代碼簽名,Xcode 4.3也變得非常聰明,不會重新簽署具有相同證書的應用程序,即使它看起來不讓你有機會不去!這就是我使用Ad Hoc構建進行驗證的結果。我很快會嘗試用生產版本。

因此,Xcode 4.3變得更智能一種方式,並且變成了另一種。 Apple需要用捆綁軟件解決這個問題,好吧!

1

是的,有一種方法。在它使用默認的代碼標記之前,它可以找到它並將其自動嵌入到您的應用程序中。現在它的竊聽。

要解決這個問題,您需要經過獲取新證書及其私鑰/公鑰的步驟。 3個步驟:

  1. 請務必前往應用程序>工具>鑰匙串訪問完全刪除舊的證書和密鑰。然後刪除與您的開發者帳戶關聯的證書和私鑰。

  2. 刪除所有信息頭Here後,爲您的應用程序生成新的證書。下載並導入您的登錄鑰匙扣

3.在Xcode中打開您的項目。前往您的根項目文件夾>目標>構建設置,並附加新的正確證書以正確地爲您的應用程序簽名。

如果您不確定代碼簽名過程。要麼去here,要麼去分配下的dev provisioning profile,你有一些(REALLY OUTDATED)的例子來指點你的方式

+0

但是,這是否意味着必須重新生成推送通知證書?而且,由於在服務器中新的證書將被上傳,是否會破壞已有應用程序與App Store的兼容性?我不認爲預覽版本沒有默認任何東西,除非您已將其設置爲自動選擇。我沒有那樣做。我已經將生成設置更改爲使用特定證書,而在歸檔時,我選擇了「不重新簽名」選項,因爲它已經簽名。 – csotiriou 2012-02-22 07:56:56

+0

是的,您將不得不重新生成推送通知,並且會破壞與App Store上現有應用程序的兼容性。我會選擇不同的方法嗎?是的,但經過近一週的鬥爭,以發佈應用程序,由於這個小故障我沒有選擇。如果你的代碼有它的plist文件,而你以前沒有備份過,那麼恢復到4.2也是行不通的。 (發現困難的方式)。 – rinzler 2012-02-26 03:05:57