2016-05-02 24 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

相关问题