具有多个iOS应用程序的组织如何pipe理iOS分发证书?

我最近参与了iOS开发的组织帐户。

他们有多个团队都在开发独立的iOS应用程序。 我有些惊讶地发现,在使用组织的“iOS发行”证书方面没有任何协调。 相反,无论开发者需要提交一个构build,都会创build一个新的构build,如果有必要的话,撤销一个或多个现有的构build(苹果公司似乎允许其中三个构件有限的供应同时“活”)。 对这种做法的理由似乎是以下观察的组合:

  • 由一个开发人员创build的分发证书不容易被另一个人使用(你可以在这个主题上find很多关于SO的问题;解决scheme似乎是确保证书的私钥元素也是共享的,但是这个组织还没有采取这种方式, 例如 , 另一个例子 ,还有更多)。
  • xcode7使得分发证书变得比以往更容易,所以这显然是苹果的预期方式(xcode6将需要去开发中心)。
  • 分发证书只需要提交相当小的appstore窗口; 一旦应用程序在appstore中,分发证书是否被撤销也没有区别。
  • 苹果似乎有一些奇怪的后进先出规则分发证书更新(如果你有“旧”,“更新”和“最新”,你撤销“更新”或“最新”…你会发现你仍然不能创造一个新的,直到你已经撤销“旧”)。 或者至less对那些希望在各个团队/项目之间分配有限的分销证书库存的组织来说,这些规则看起来很奇怪,但却发现不符合苹果实际提供的。

但是,我观察到这种快速分发证书stream失策略的一个非常严重的负面后果,就是tesflight构build的版本不能长久保持有效,而tesflight用户发现自己正在获得有关无效证书或应用程序的对话框testflighttesting人员从testing飞行中消失得太早。 (其实也是沿着同样的路线看这个问题 )。

鉴于苹果明确将testing视为appstore基础设施的重要组成部分,我发现很难相信这个组织正在按照苹果公司的实际情况来处理事情。 有人能够洞察一下正确的做事方式,请赐教吗?

道歉,如果我的术语是closures在上面的一些…我只是涉足这个东西。

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

海事组织认为“简单”地转移证书实际上是一件坏事。 正如你所看到的,团队中的其他开发人员很容易搞砸了,特别是在TestFlight方面,尽pipe最近我从其他开发者那里听说苹果可能已经修复了这个问题。 (我自己没有证实。)