为啥不使用开发配置而不是临时配置?

Posted

技术标签:

【中文标题】为啥不使用开发配置而不是临时配置?【英文标题】:Why not use development provisioning instead of ad hoc?为什么不使用开发配置而不是临时配置? 【发布时间】:2010-04-12 22:02:32 【问题描述】:

我的印象是,当您使用开发配置文件构建应用程序时,只有指定的开发人员才能将该构建部署到手机上。

但我刚刚使用 Xcode Organizer 将使用开发配置文件的构建部署到手机,即使我不是该配置文件的有效开发人员之一。我的一位同事甚至没有安装 Xcode,他在手机上使用 iTunes 也做了同样的事情。

在这种情况下,为什么不使用开发配置文件将您的应用分发到例如您的 QA 团队,而不是临时分发?

编辑:请在回答之前仔细阅读粗体部分。我不是在问一个基本的“这是如何工作的”问题。我做了很多开发、临时和应用商店构建,现在我发现我似乎做了一些错误的假设。

【问题讨论】:

【参考方案1】:

在一种情况下,您需要 Ad Hoc 配置文件,这就是您想要测试推送通知的时候。

如果您在开发配置文件上测试推送通知,则需要使用开发推送通知证书发送您的推送通知,以便 SSL 连接到 Apple 的沙盒 APNS 服务器。

如果您想使用生产推送通知证书和实时 APNS 服务器测试推送通知,您必须使用分发证书和临时配置文件(包括执行 Entitlement.plist如果您只使用开发人员配置文件,通常可以跳过这种延迟)。

另请注意,当您使用 Ad Hoc 配置文件进行部署时,您的设备令牌将不同于您在使用开发配置文件时使用的设备令牌。这也是测试 APN 的推荐方法,因为在 Ad Hoc 构建和 AppStore 上的最终实时部署之间不需要进行后端更改。

【讨论】:

是否可以在使用开发配置文件的同一设备上使用 Ad Hoc 进行测试?我相信我做的一切都是正确的,但没有收到警报。我有一种感觉是因为我首先使用开发配置文件授权了设备上的警报。 我相信你在这个答案中所说的是真的,推送通知是区分这些的主要问题,但如果这是真的,为什么 Apple 的文档一再建议需要设置分发配置文件用于团队成员之间的共享。在他们的所有文档中,都暗示您需要的不仅仅是开发人员个人资料才能与他人共享,即使情况似乎并非如此。有什么改变吗?见:developer.apple.com/library/ios/#technotes/tn2250/_index.html#//… 我有一个问题请仔细阅读。这个问题中没有提到。我可以使用带有 ssl 开发推送通知的临时配置文件来测试推送通知吗? @hasan83 不可以。您必须使用生产证书才能使用 Ad Hoc 进行测试【参考方案2】:

Ad-Hoc 不适合开发人员,而是适合测试人员。没有 iPhone SDK / XCode 的人,只有 iTunes。

(答案是:无需开发者证书即可安装 ad-hoc 应用,而开发应用则无法安装)

【讨论】:

但是我能够在没有开发者证书的情况下安装开发应用程序,只要我有开发配置文件。开发配置文件是否包含开发者的私钥?这就是它起作用的原因吗? 这很有趣。必须再挖掘一点才能回答这个问题。 而且,顺便问一下,你能在没有 Xcode 的情况下安装 developer build 吗? 是的;我的同事就是这样做的。他没有安装 Xcode。 您不能使用 AdHoc 配置文件调试应用程序,但您可以使用开发人员。我认为这是主要区别。【参考方案3】:

方法一:从 XCode 安装

开发配置文件要求您(最初)从 XCode 中运行应用程序。

这具有将设备标记为用于开发的副作用,但还需要您将 iPhone/iPod Touch 连接到运行 XCode 的机器。从 XCode 运行应用程序后,该应用程序将安装在设备上,您不再需要连接到机器来运行它。 (直到您想要更新应用程序。)

方法 2:从 iTunes 安装

Ad-Hoc 配置文件允许您将应用程序提供给任何人,并让他们使用 iTunes 自行安装。你发给他们:

应用,以及 即席配置文件

他们选择这两个并将它们拖到 iTunes 上。然后同步。

稍后,您可以只向他们提供应用程序的更新版本(没有 Ad-Hoc Provisioning Profile,因为他们已经在他们的设备上安装了该应用程序),他们可以将新应用程序拖到 iTunes 图标上以安装新版本。

Ad-Hoc 分发的一个限制是,它要求您将每个设备 ID 输入 iPhone 开发门户。并且每年有 100 个设备 ID 的限制(您不能删除任何 ID,直到明年开始 - 只能添加它们)。对于大多数开发人员来说,100 个 ID 的限制不会成为障碍,请记住,您需要提前获取设备 ID,然后再创建 Ad-Hoc Provisioning Profile 以发送给您要安装应用程序的人.

【讨论】:

你没有回答我的实际问题。

以上是关于为啥不使用开发配置而不是临时配置?的主要内容,如果未能解决你的问题,请参考以下文章

javaEE中的服务器web.xml配置的时候为啥一定要配置servlet,而不用配置jsp

iCloud 不使用临时配置文件同步

iOS 应用程序使用临时分发配置文件崩溃

临时配置文件和开发推送通知 SSL [重复]

我可以使用开发证书和临时分发配置文件将我的应用分发给特定用户吗?

ios ipa 导出与开发或临时配置文件的区别