15

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

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

  1. 将我添加为其开发者帐户的成员
  2. 我使用他们的证书构建应用程序
  3. 我给他们 .ipa 和 plist 文件以通过 MDM 或网站分发。

这是正确的方法吗?如果我要将同一个应用程序卖给三个客户怎么办——我会以不同的方式做吗?要通过 AirWatch 分发,还需要做些什么吗?

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

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

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

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

4

4 回答 4

5

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

两种方式都可以,只是以后谁有权在同一账户下提交具有相同证书的应用程序。该权限驻留在证书的相关密钥对的拥有中。如果您被添加到客户的开发团队并下载他们的分发证书,您将没有此密钥并且无法使用关联的配置文件签署分发版本。

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

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

于 2013-07-15T15:59:18.673 回答
2

作为企业代理,我会告诉您,除非您的客户生活在一块岩石之下(从技术上讲,关于 Apple 开发门户),否则我怀疑他们会放弃私钥和证书。如果他们对您创建的源代码的合法/合同访问权限为零,从经验来看,唯一的做法是让您使用源代码访问他们的设施,在他们存放私钥的盒子上编译它&企业分发证书,构建和交付 IPA,最后带回源代码。这就是我与第 3 方供应商一起编译每个构建的方式,我们不拥有源代码并且需要在内部部署。

另一方面,如果客户出于某种疯狂的原因愿意放弃其企业城堡的密钥并导出私钥和企业分发证书供您使用……看在您的份上,我会加入写下您对该证书的使用范围,并以某种方式记录您在流程结束后删除了密钥和证书的事实。不要让自己承担责任,因为如果他们与您分享,他们也有可能与其他人分享,而且众所周知,并非所有开发实体都遵守规则。您不想被指责以他们的名义创建了一些流氓应用程序。

关于重新签署 IPA 文件……AirWatch 不会让你这样做。当您上传 IPA 时,AW 会询问 IPA,它会注意到嵌入式配置文件与重新签名的 IPA 和 tank 不匹配。在安装应用程序之前,您需要设备上的配置文件,但 AirWatch 不会让您部署应用程序,除非上述嵌入式配置文件是正确的。

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

编辑:以下是Development Provisioning Profile在企业 iOS 帐户中编辑时的选项: 发展概况

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

现在这里是您编辑的“选项” Enterprise Provisioning Profile企业简介

如您所见,您没有选择编辑哪些门户用户或设备可以使用此配置文件,因为它与代理的 CSR/私钥相关联并在全球范围内部署。

于 2013-07-15T18:44:22.150 回答
1

你需要:

  1. 他们的证书。
  2. 他们的配置文件。

这样做是很常见的做法

于 2013-07-15T15:39:34.403 回答
1

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

是的。

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

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

另一种选择是构建应用程序并使用B2B 分发机制将其出售给您的客户。

于 2013-07-15T15:45:42.300 回答