2012-12-19 179 views
22

我想了解代碼簽名過程是如何工作的。我的目標是獲取與公司A的企業證書簽署的.ipa文件,更改包ID,然後再與簽署公司B的App Store分發證書併發布到App Store。如何重新簽署App Store發佈的iOS應用程序?

首先,這甚至有可能嗎?我讀here,「...我敢肯定,你不能(也不應該)使用這個工具來取消App Store分發證書的應用程序」。有人可以詳細說明嗎?

我已經嘗試了許多腳本像thisthisthis,但一些調整後,他們都似乎有同樣的問題,當我嘗試發送應用程序使用應用程序加載器的審查。我得到的錯誤是:

  • 應用程序失敗的codesign驗證。簽名無效, 包含不允許的權利,或者未使用iPhone 分發證書進行簽名。
  • 無法抽取的權利從/var/folders/67/(large_number)/new.ipa/Payload/original.app/original

任何人可以幫助我嗎?請注意,我知道如何通過出口證書等方式來實現這一目標 - 但在此我正在探討,如果我向他們提供公司A的.ipa文件,公司B是否可以自己做到這一點。我可以更詳細地解釋我在做什麼,如果需要 - 請問。

謝謝!

編輯:我已經知道this closed SO question,但我發佈了一個新的,因爲我認爲我的更具體,我不是要求一種通用的方式來實現我想要的 - 我只想看看是否描述情況是可能的。

回答

0

我已經使用AirSign應用程序節省了大量時間(當我發佈我的原始問題時這是不可用的)。

6

要退出一個新的應用程序,這應該是可能的,您將需要在開發者門戶中創建所有新的分發配置文件(假設您有這麼多)。一切都需要從你的應用程序匹配到新的配置文件。應用ID可能是最重要的。當你創建一個新的,你必須在你的項目中進行設置以匹配。通常是com.companyname.appname.optional。這個新的應用程序ID必須在您的構建設置中與Bundle標識符配對。一旦你匹配了,你應該能夠將它與新的發行版/配置文件配對。

FWIW,交換這些配置文件必須是所有iOS開發中最複雜的過程。這可能需要一些修補和試驗和錯誤,但我確信它可以完成。祝你好運。

+0

是的,我擁有測試所需的所有配置文件。我看到,當我辭職時,Bundle ID會發生變化,但我認爲權利會出問題。你對此有更多瞭解嗎? – phi

+0

我很確定權利是項目特定的,與任何供應無關。您應該能夠從摘要選項卡配置權利,並讓Xcode爲您解決問題。 –

2

我以前遇到過麻煩。在Xcode中設置新的配置文件並重新構建似乎可行,但在編輯帶有包ID的plist後,使用命令行退出現有應用程序讓我非常痛心。我懷疑這是在構建應用程序時嵌入的配置文件,但說實話,我不確定。

我看到你遇到了權利問題 - 請注意,其中一些設置在開發者檔案中(推送通知,IAP和iCloud),並且必須在那裏正確。

第二個技巧是Xcode在項目中(某處)緩存dev配置文件,所以即使從Library文件夾中的移動配置文件文件夾中刪除了一個文件夾,也必須實際在Xcode的目標設置中進行更改項目或它可能仍然使用舊的(grrr)。

相關問題