iOS客户端企业分发的最佳实践是什么?

时间:2013-07-15 15:19:17

标签: ios mdm

有很多关于iOS发布的信息。我想我理解不同的distriubution模型,但我正在寻找将应用程序分发给客户的最佳实践。

我的客户拥有企业开发者帐户并使用AirWatch for MDM。以下是我将向他们推荐我们将应用程序分发给他们的组织的方式,因为他们没有任何技术人员对Xcode或iOS开发有任何经验,他们将无法访问源代码:

  1. 将我添加为其开发者帐户的成员
  2. 我使用他们的证书
  3. 构建应用程序
  4. 我给他们.ipa和plist文件通过MDM或网站分发。
  5. 这是正确的方法吗?如果我打算将这个应用程序卖给三个客户怎么办?我会采用不同的方式吗?还有什么需要通过AirWatch进行分发吗?

    再次,寻找最佳实践以及其他人如何处理这种情况。请澄清我是否有任何错误。

    更新:谢谢大家的答案。据我所知,如何做到这一点直接取决于客户如何处理这种情况。最后,客户将我作为管理员添加到他们的帐户中(我们一起工作了很多)。我能够创建分发配置文件,构建应用程序并将其部署到它们。出于安全原因,并非所有客户都会这样做。在这种情况下,他们需要为您提供如下所述的证书,或者您需要在他们的一台机器上构建应用程序,如下面的Buckeye所说......或者通过Apple将应用程序分发给他们。

    如果不正确,请随时更正此信息。我真的认为这对很多开发者来说都是有用的信息。

    我接受帕特里克的回答,因为它与我实际做的最接近。

4 个答案:

答案 0 :(得分:5)

有两种方法可以做到这一点,但两者都必须作为客户开发团队的成员添加。完成此操作后,您(或更可能是您的客户)将选择天气来使用他们自己的内部证书或您将管理的自己的分发证书。

它可以以任何一种方式完成,只是将来有权在同一帐户下提交具有相同证书的应用程序。该权限属于拥有相关密钥对的证书。如果您被添加到客户端的开发团队并下载其分发证书,则您将无法使用此密钥,也无法使用关联的配置文件签署分发版本。

因此,您必须从客户端获取证书(包含密钥)的.p12导出才能在您的计算机上安装,以便您可以使用它进行签名。这将允许您从您的机器提交,但您拥有他们想要保护的客户私钥。您的另一个选择是使用您自己的证书签名请求在客户的开发者帐户上创建分发证书。在这种情况下,只有您可以控制证书,如果客户希望将来与其他开发人员合作,则必须创建新证书。

完成后,here是企业分发的信息指南。

答案 1 :(得分:2)

作为企业代理,我会告诉您,除非您的客户生活在岩石之下(技术上讲是关于Apple开发门户网站),我怀疑他们是否会放弃私钥和证书。如果他们对源代码没有法律/合同访问权限,那么您创建了唯一的行动方案,从经验来讲,将是您使用源代码访问他们的设施,在他们的包含私钥和放大器的盒子上编译它;企业分销证书,构建和提供IPA,最后带回来。这就是我用第三方供应商编译每个构建的方式,我们不拥有源代码,需要在内部部署。

另一方面,如果客户是出于某种原因,愿意放弃他们企业城堡的钥匙并输出私钥&您可以使用的企业分发证书......为了您的利益,我会以书面形式了解您使用该证书的范围,并以某种方式记录您已删除密钥的事实。过程结束后的证书。不要让自己承担责任,因为如果他们与你分享,他们也有可能与其他人分享,而且众所周知,并非所有的开发实体都遵守规则。你不会被指责在他们的名下创建一些流氓应用程序。

关于重新签署IPA文件...... AirWatch不允许您这样做。当您上传IP时,AW会询问IPA,并且会注意到嵌入式配置文件与重新签名的IPA和坦克不匹配。它变成了鸡肉和鸡肉。在您安装应用程序之前需要设备配置文件的鸡蛋情况,但AirWatch不允许您部署应用程序,除非前面提到的嵌入式配置文件是正确的。

此外,@ Caleb对于B2B是正确的,但定价模型从项目到每个席位(iOS设备)。换句话说,如果您的合同是“您可以在无限数量的设备上安装此应用程序”,B2B方法将在每个人的脸上爆炸。

编辑: 在企业iOS帐户中编辑Development Provisioning Profile时,您可以选择以下选项: Development Profile

显然在这里你可以选择&从可以编译到该配置文件的门户中选择开发人员及其设备。

现在,这是编辑Enterprise Provisioning Profile的“选项”: Enterprise Profile

正如您所看到的那样,您无法选择编辑哪些门户网站用户或设备可以使用此配置文件,因为它与代理的CSR /私钥绑定并全局部署。

答案 2 :(得分:1)

你需要:

  1. 他们的证书。
  2. 他们的配置文件。
  3. 这是一个非常common practise to do this

答案 3 :(得分:1)

  

我的问题是,这是正确的方法吗?

  

如果我打算将同一个应用程序卖给3个客户,我会以不同的方式做到这一点吗?

不,你会做同样的事情。您需要使用每个客户的分发证书为每个客户单独构建应用程序。

另一种选择是使用B2B distribution mechanism构建应用并将其出售给您的客户。