2012-04-19 47 views
2

这是我的场景。我在一个由3名开发者组成的团队工作。目前,我是唯一一个负责开发iPhone的人员,因此我们有一个项目是我创建,测试并创建了一个部署证书,因此我可以构建它并将其部署到少数设备。 1个开发人员,1个应用程序,这非常简单。这是我的问题所在。有没有办法为企业中的团队部署创建部署配置文件的通用私钥?

现在让我们说一个其他开发人员必须签出源代码,进行更改和重新部署,我不在身边,我开发的计算机也不是。我已阅读了所有我能找到的内容,并且我了解其他开发人员需要下载分发证书和部署供应配置文件,并且我还需要将分发证书的私钥导出为.p12格式,以便将它们放入其中机。这一切都像说的那样工作。

我有什么问题以及我无法弄清楚的是我创建的分发证书是用我的开发人员私钥签名的。我觉得这不应该是这样,因为如果我出口这个给他们,他们现在有我的私钥,从我所能告诉的是你应该保密的东西,并在一个安全的地方,让我在其他地方发展机器或者我需要重新安装,而不是我将其他开发人员只为了部署而给予的东西。反之亦然,当他们创建一个应用程序,我需要进行更改和部署。

我到处搜索了一个答案,但我似乎无法找到确切的答案,我需要了解我错过了什么。也许我只是错过了一些重要的概念。

  • 有没有办法用我公司的私人密钥而不是我自己创建一个配置文件?或者,如果我必须为每个项目创建分发证书,我甚至可以为每个项目命名一个密钥。
  • 是否分享我的私人密钥附加到分发证书错误/坏?
  • 他们可以用我的私钥做什么?我觉得我们应该有一个公司的私钥或什么东西。

我知道这是很长时间的啰嗦,但我现在真的很茫然。这里是另一篇相似的文章,也链接到另一篇文章,该文章的问题与我所知道的相同,但至少据我所知,没有得到明确回答。

Enabling multiple team admins to build an app for distribution in XCode 4.3?

如何一个开发团队都可以构建和部署,而无需共享其私钥任何帮助将不胜感激。我认为这很简单,因为我无法想象其他公司正在从一台机器进行部署。

Jon

+0

史诗阅读和+1给你的细节 – 2012-04-19 02:53:36

回答

0

您的开发者私钥没有与分发证书一起使用。上面的场景涉及两个私钥。

打开钥匙串访问,选择您的登录钥匙串,并选择类别下的“我的证书”。

1)您的开发人员私钥永远不需要与其他开发人员共享。它是独一无二的,仅供您使用。只有当您要迁移到新计算机时,您才需要导出该计算机。在您的钥匙串访问应用程序中,您将看到此证书列为“iPhone开发人员:您的姓名”

2)分发证书具有单独的私钥。它位于创建分发证书请求的计算机上,并位于列为“iPhone分发:您的公司名称”的Keychain Access应用程序中。您需要导出此证书(包括公钥和私钥)以允许其他人使用现有配置文件创建企业分发。有关如何导出这些密钥的信息,请参阅:https://stackoverflow.com/a/9418712/600753

我推荐上述方法,但另一种方法是让其他开发人员创建另一个分发证书和另一个供应配置文件。这种方法有可能会混淆Xcode中配置文件的自动选择,并且通常比它的价值更麻烦。

1

答案(如题)稍长:

1)作为一项规则,发行配置的配置文件(点对点,企业点播服务和AppStore的)使用不同的证书/密钥对,然后开发配置文件。在供应门户中清楚标记(例如,开发人员证书,分发证书和推送证书)。

2)公司倾​​向于限制对分发密钥的访问,因为它们的泄漏会带来重大的安全隐患(例如,某人可能会尝试使用恶意软件等分发您的应用程序)。通常的做法是有一到三个指定的“签名者”

3)至于一个多次分配证书:你可以拥有的分配证书数量有限制(我认为是两个)。另外,如果是分发配置文件,则只能选择一个。因此,如果您想定期使用两个密钥/证书,则必须为同一应用提供两个配置配置文件。相信我! xcode会让你后悔这个想法!

附加说明:理论上应该可以使用您选择的私钥/公钥来创建CSR(证书签名请求),而不是生成新私钥的默认行为。 More here