Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有多个正在开发的iOS应用程序的组织应如何管理iOS分发证书?_Ios_Xcode_Certificate_App Store_Testflight - Fatal编程技术网

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

具有多个正在开发的iOS应用程序的组织应如何管理iOS分发证书?,ios,xcode,certificate,app-store,testflight,Ios,Xcode,Certificate,App Store,Testflight,我最近参与了一个团队,该团队拥有iOS开发的组织帐户 他们有多个团队都在开发各自的iOS应用程序。我有点惊讶地获悉,在使用组织的“iOS分发”证书时,根本没有协调。相反,需要提交构建的开发者只需创建一个新的构建,必要时撤销一个或多个现有构建(苹果似乎允许有限的三个构建同时“上线”)。这种做法的理由似乎是以下观察结果的结合: 一个开发人员创建的分发证书不容易被另一个开发人员使用(在这个主题上,您可以找到很多问题;解决方案似乎是确保证书的私钥元素也被共享,但是这个组织还没有考虑到这一点。,;还有更

我最近参与了一个团队,该团队拥有iOS开发的组织帐户

他们有多个团队都在开发各自的iOS应用程序。我有点惊讶地获悉,在使用组织的“iOS分发”证书时,根本没有协调。相反,需要提交构建的开发者只需创建一个新的构建,必要时撤销一个或多个现有构建(苹果似乎允许有限的三个构建同时“上线”)。这种做法的理由似乎是以下观察结果的结合:

  • 一个开发人员创建的分发证书不容易被另一个开发人员使用(在这个主题上,您可以找到很多问题;解决方案似乎是确保证书的私钥元素也被共享,但是这个组织还没有考虑到这一点。,;还有更多问题)
  • xcode7比以往任何时候都更容易搅动分发证书,因此这显然是苹果的预期方式(xcode6需要去开发中心)
  • 分发证书只需要在appstore提交的相当小的窗口中使用;一旦应用程序进入appstore,分发证书是否被吊销就没有什么区别了
  • 苹果似乎在发行证书更新方面有一些奇怪的后进先出规则(如果你有“旧的”、“新的”和“最新的”,并且你撤销了“新的”或“最新的”…你会发现你仍然无法创建一个新的,直到你撤销了“旧的”)。或者至少这些规则对于一个希望在不同的团队/项目之间分配有限数量的分发证书的组织来说似乎很奇怪,但发现这不符合苹果实际提供的内容
但是,,我观察到,这种快速分发证书的政策的一个非常严重的负面后果是testflight版本根本不能保持很长时间的有效性,tesflight用户发现他们自己得到了关于无效证书的对话框,或者他们应该是testflight测试人员的应用程序,很快就会从testflight中消失。(事实上,请参见同样的内容)

鉴于苹果明确地将测试飞行视为appstore基础设施的一个重要组成部分,我发现很难相信这个组织按照苹果实际打算的方式行事对于正确的做事方式有一些见解的人能给我一些启发吗?


抱歉,如果我的术语在上面的某些地方不正确。。。我只是涉猎了一下这些东西。

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


事实上,很容易篡改证书实际上是一件坏事,依我看。正如你所观察到的,团队中的其他开发人员很容易把事情搞砸,特别是在测试飞行方面,尽管我最近从另一个开发人员那里听说苹果可能已经解决了这个问题。(我自己还没有确认。)

谢谢,听起来是个不错的方法。我最近在4月28日看到了一个证书撤销事件,它扼杀了testflight部署,所以如果苹果公司已经修复了任何东西,那么它必须是最近才修复的。我们采用了类似的方法。我们首先删除了大多数开发团队成员的“管理员”角色,这样他们就不能通过单击“修复”按钮轻松地撤销证书。然后,我们生成了一个分发证书,供团队共享。如果可能的话,我们也鼓励在共享构建框上进行构建。@jsd我想知道苹果最近是否开始支持多个管理员的组织帐户的多个分发证书(我可以在我的开发者门户中看到两个团队管理员的两个分发证书)。或者,你能提供任何支持你答案的苹果文档吗?Thanks@jsd是否可以为每个应用程序使用不同的分发证书?我知道这不好,但那会很好。