2016-05-02 25 views
4

我最近參與了iOS開發的組織帳戶。具有多個iOS應用程序的組織應該如何管理iOS分發證書?

他們有多個團隊都在開發獨立的iOS應用程序。我有些驚訝地發現,在使用組織的「iOS分發」證書方面沒有任何協調。取而代之的是,無論開發者需要提交一個構建,都會創建一個新的構建,如果需要的話,撤銷一個或多個現有的構建(蘋果似乎允許其中三個構件的有限供應同時「活」)。理由爲這種做法似乎是觀測的組合:

  • 分佈證書由一個開發人員創建不(容易)被另一個可用的(你可以找到周圍等這個話題相當多的問題;在解決方案似乎是要確保證書的私鑰元素也是共享的,但是這個組織還沒有采取這種方式。Example,another example;還有更多)。
  • xcode7使得分發證書變得比以往更容易,所以它顯然是蘋果的預期方式(xcode6將需要去開發者中心)。
  • 分發證書僅用於appstore提交的相當小的窗口;一旦應用程序在appstore中,分發證書是否被撤銷也沒有區別。
  • 蘋果似乎有一些奇怪的後進先出規則分發證書更新(如果你有「舊」,「更新」和「最新」,你撤銷「更新」或「最新」......你會發現在撤銷「舊」之前你仍然無法創建一個新的)。或者至少對那些希望在各個團隊/項目之間分配有限的分銷證書庫存的組織來說,這些規則看起來很奇怪,但發現它不符合蘋果實際提供的內容。

不過,我觀察快速的發佈證書客戶流失這一政策的一個非常嚴重的負面後果是,tesflight建立了很長時間都沒有留下有效的,tesflight用戶發現自己獲得關於無效的證書或有應用程序的對話框他們應該是測試飛行員從測試飛行中消失的測試人員。 (實際上沿着相同的路線也看到this question)。

鑑於蘋果明確將測試視爲appstore基礎設施的重要組成部分,我發現很難相信這個組織正在按照蘋果公司實際上想要完成的事情來處理事情。 有人能夠洞察正確的做事方式,請賜教嗎?

道歉,如果我的術語是關閉在上面的一些......我只是涉足這個東西。

回答

4

正確的方法是擁有一個分發證書並共享私鑰。我們共享一個小的鑰匙串,其中只包含我們組織中開發/分發所需的私鑰和證書。您可以將此「存根」鑰匙串添加到所有開發機器中,並且如果將其檢入到版本控制中,則可以輕鬆地將更新推送給每個人。您也可以使用密碼保護它,在這種情況下,Xcode會在使用密碼時要求您解鎖它。

事實上,「簡單」地轉移證書實際上是一件壞事,IMO。正如你所看到的,團隊中的其他開發人員很容易搞砸,特別是在TestFlight方面,儘管我最近從另一位開發者那裏聽說蘋果可能已經解決了這個問題。 (我自己沒有證實。)

+0

謝謝,聽起來很不錯。我最近在4月28日看到了一個證書撤銷殺死testflight部署的問題,所以如果蘋果已經修復了任何問題,那麼最近肯定會是這樣。 – timday

+1

我們採用了類似的方法。我們首先從大多數開發團隊成員中刪除了「管理員」角色,這樣他們就不會輕易通過點擊「修復」按鈕來吊銷證書。然後我們生成了一份我們在團隊中共享的分發證書。我們也鼓勵在可能的情況下在共享構建盒上進行構建。 – toofah

+0

@jsd我想知道蘋果最近是否開始支持多個管理員組織帳戶的多個分發證書(我可以在我的開發人員門戶中看到2個團隊管理員的2個分發證書)。或者,您能否提供您支持您的答案的任何Apple文檔?謝謝 – user3676224

相關問題