具有多个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最近我从其他开发者那里听说苹果可能已经修复了这个问题。 (我自己没有证实。)
- Xcode 6 App Store提交失败,“您的帐户已经拥有有效的iOS分发证书”
- 身份“iPhone开发人员”不匹配钥匙串中的任何有效的,未过期的证书/私钥对
- 了解证书,代码签名,configuration和相关主题的资源(Apple除外)是什么?
- 苹果推送服务,而不是苹果生产iOS推送服务
- Xcode 8和iOS 10 Cordova项目上的代码签名错误
- 使用自签名证书https卡
- 错误ITMS-9000:“缺less代码签名权利。 在捆绑中找不到权利“ – 如何更改应用程序ID名称
- 使用NSURLConnection和NSURLProtectionSpace确定信任
- iOSconfiguration和authentication – 将撤销/续订效果App Store应用程序?