2011-06-15 88 views
2

我在为各种企业进行第三方iOS开发的公司工作。我一直致力于研究更好的方法来为这些企业构建和部署代码。基于Apple TOS,他们不能使用通过我们的企业证书签名的应用程序(他们不是“内部”)。该代码需要与他们的(我们的客户)企业证书签署。以下是我见过的一些可能的解决方案 -代码签名证书,.p12文件和移动设备的命令行安装

1)将代码发送到客户端,并让客户端构建它。 这是一个不用去

2)创建一个包含应用程序代码的库,并将.so文件和头文件发送到客户端进行构建。 我们目前正在这样做,但正在考虑让客户/我们更容易。

3)让客户发送他们的证书,mobileprovision和.p12文件,然后我们使用他们的证书构建应用程序。 这可能会工作,但可能会成为一个管理噩梦。

我们想出了一种构思,就是将这些构思混合在一起。这个想法涉及建立一个客户门户,客户可以将他们的文件(cert,p12,provision)上传到我们的Mac服务器,Mac将自动构建他们的应用程序,并进行正确签名。但是,我遇到的问题是我似乎无法找到如何自动安装证书和规定。

那么,有没有人知道从命令行安装CodeSign证书(带有.p12文件)和移动配置文件的方法?一旦安装,还有一种方法可以从命令行中删除项目?

任何帮助,想法和/或输入将不胜感激。谢谢!

回答

4

您应该能够使用securityhttp://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/security.1.html)命令管理钥匙串中的资源。我用来控制命令行版本的脚本可能是一个有用的参考:https://gist.github.com/949831

+0

这看起来可能是我们需要的,但我还没有时间去测试它。今天我会研究这个,所以希望这会为我们提供我们的答案! :) 非常感谢! (如果这确实起作用,将标记为答案) – 2011-06-24 13:03:56

+0

太好了。如果您发现任何要添加到该脚本中的内容,您认为这些内容对于开发者来说通常很有用,请通过要点告诉我,或访问http://blog.carbonfive.com/2011/05/04/automated-ad -hoc-builds-using-xcode-4/ – Jonah 2011-06-24 18:08:08

+0

我已经能够得到这个(主要)工作感谢您的输入。还有一些我必须放在一起,但这使我在我的驼峰。非常感谢! :) – 2011-06-28 11:50:25

2

无可否认,我一次只有最多2个外部客户加我自己的东西,所以它大多只是同一个噩梦它通常是默认的,但如果您必须手动执行除供应配置文件以外的任何操作,那么会有多糟?根据我的经验,一旦客户端证书被添加,即使有新项目(来自同一客户端),我也再也没有真正混淆它们。

您可以通过将文件简单复制到〜/ Library/MobileDevice/Provisioning中来处理配置文件配置文件,并在不再需要时删除它们。这听起来像你已经设置了自动化的过程。

如果您当前正在通过“将它们放到xcode中”来安装供应配置文件,我建议您通过将其复制到文件夹中来执行此操作,因为这样文件名就会保留下来,所以您实际上可以告诉您所拥有的通过简单地查看文件夹安装。

+0

我们面临的问题是,我们的一些客户不愿意让他们的证书无限期地坐在开发者机器上。我们的解决方案是尝试创建一个自动构建过程,客户可以将其文件上传到安全服务器,获取构建,然后删除其信息。它使这个过程更加安全,并使我们客户的思想变得轻松(所以我们希望!)。 – 2011-06-24 12:53:25

+0

在这种情况下,Jonah的答案看起来似乎会照顾到你的证书。我很确定这是困难的部分,配置文件只是复制/删除的问题。是1)不是一种选择,因为你不希望客户有权访问源代码?如果没有,您是否考虑过使用客户端构建脚本,它首先完成构建所需的所有文件的SVN更新?我从来没有为iOS做过这样的事情,但是对于Windows托管的项目。 – jimkberry 2011-06-24 13:07:40

+0

首先,您对配置文件的评论非常有帮助。我已经改变了我们现在的做法,以适应您的建议:D我们考虑过一个客户端脚本来从SVN撤出并构建,但由于各种原因(有些我不明白),我们的首席执行官100%反对给予无论是源代码还是任何类型的源代码访问,无论它是否被删除。我们也有几个100%反对给我们证书的客户。他们害怕它无限期地坐在开发机器上。这真是一个令人讨厌的问题,但你和约拿已经指出我们更接近解决方案! – 2011-06-24 14:52:13