开发中有多个iOS应用程序的组织应如何管理iOS分发证书?

时间:2016-05-02 17:19:05

标签: ios xcode certificate app-store testflight

我最近参与了一个拥有iOS开发组织帐户的小组。

他们有多个团队都在开发独立的iOS应用程序。我有点惊讶地发现,使用该组织的iOS发行版并没有任何协调。证书。相反,无论开发人员需要提交构建版本,只需创建一个新构建版本,在必要时撤销一个或多个现有构建版本(Apple似乎允许其中三个中的有限供应为"同时生活"同时)。这种做法的理由似乎是以下观察结果的组合:

  • 由一个开发人员创建的分发证书不能(容易)被另一个开发人员使用(你可以在这个主题上找到很多关于SO的问题;解决方案似乎是确保证书的私钥元素是也分享了,但是这个组织尚未采取这种方式。Exampleanother example;还有更多)。
  • xcode7比以往任何时候都更容易流失分发证书,因此它显然是Apple的预期方式(xcode6需要访问开发人员中心)。
  • 只有appstore提交的相当小的窗口才需要
  • 分发证书;一旦应用程序在appstore中,分发证书是否被撤销就没有区别。
  • Apple似乎有一些关于分发证书续签的稍微奇怪的后进先出规则(如果你有"旧","较新"和"最新&#34 34;你撤销"更新"或者#34;最新" ...你会发现你仍然无法创建一个新的,直到你被撤销和" #34;旧&#34)。或者至少那些规则看起来很奇怪的组织本来希望在各个团队/项目之间划分有限的分发证书库存,但发现它并不适合Apple实际提供的东西。

然而,我观察到这种快速分发证书流失政策的一个非常严重的负面后果是,testflight构建根本不会长时间保持有效,并且tesflight用户发现自己会收到有关无效证书或拥有应用程序的对话框#39;应该是testflight的测试人员,他们很快就会从testflight中消失。 (事实上​​,也可以在同一行中看到this question)。

鉴于Apple明确将testflight视为appstore基础架构的重要组成部分,我发现很难相信这个组织正在以苹果实际上打算完成任务的方式开展工作。 能够对正确的做事方式有所了解的人能够启发我吗?

如果我的术语在以上某些内容中没有了,我会道歉...我只是涉足这个问题。

1 个答案:

答案 0 :(得分:5)

正确的方法是拥有一个分发证书并共享私钥。我们共享一个小钥匙串,其中只包含我们组织中开发/分发所需的私钥和证书。你可以添加这个' stub'所有开发机器的钥匙串,如果它被检入版本控制,您可以轻松地向所有人推送更新。您也可以使用密码进行密码保护,在这种情况下,Xcode会要求您在使用代码签名时将其解锁。

它很容易"转发证书实际上是一件坏事,IMO。正如您所观察到的那样,团队中的其他开发人员很容易搞砸了,特别是关于TestFlight,尽管我最近从其他开发人员那里听说Apple可能已经解决了这个问题。 (我自己也没有证实过。)