为我的应用程序准备Ad Hoc分发

11

我已经阅读了几篇教程并观看了一些iTube视频,以了解如何为Ad Hoc分发最好地准备我的应用程序。然而,我得到的信息并不是很一致,从苹果开发者中心的5步说明到一个近3分钟的视频,其中我需要在XCode中设置某些代码签名选项,创建并压缩存档等。

我的问题:

1.是否有可用的教程,可以解释所有所需的内容,但不要过多解释?我有些感觉,例如,代码签名并不是真正需要的。

2.在我尝试使用iTunes安装应用程序后,同步声称无法安装它。 iTunes中是否有日志可用,以便我可以检查更多的错误详细信息?

3.如何从Ad Hoc分发模式切换到正常的开发人员模式?在我按照视频中的步骤准备好Ad Hoc分发的应用程序之后,我无法再将其安装在我的设备上,我收到以下错误:

Build target Abiliator Check dependencies [BEROR] CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 5.0'

这是我遵循的iTube视频教程:iPhone应用程序Ad Hoc分发的演示

感谢您的反馈,祝您周末愉快。


注:Ad Hoc分发是指将应用程序分发给有限的、特定的设备集合进行测试使用,而开发者模式则是为了在设备上使用自己开发的应用程序。
3个回答

14

好的,我查了一下“以下作业试图劫持服务…”的错误,并发现重新启动iPhone可能会解决问题,结果我整天都在追逐一个幻影……现在一切都正常了。所以,给那些遇到类似问题的人一个提示,在第一次通过Ad Hoc安装应用程序后:重新启动iPhone,否则该应用程序可能会崩溃。

祝大家晚安:-)

顺便说一句,这是我最终采取的步骤(如上所述,我使用的是XCode 4.2.1):

  1. 在Provisioning Portal上添加了我的设备(尽管这已经很久以前就做过了,但这是一个重要的步骤,因为beta测试人员的设备ID也需要在这里注册,然后重新创建并下载发布文件)
  2. 在Provisioning Portal中创建和下载了iOS发布证书
  3. 在我的Keychain中导入了证书
  4. 在Provisioning Portal中创建了一个Ad Hoc Provisioning文件
  5. 下载该文件
  6. 双击该文件,将其添加到XCode Organizer Provisioning Profile部分
  7. 在我的项目和目标的代码签名部分中添加了任何SDK和任何iOS SDK选项以进行Ad Hoc分发,并使用我刚刚创建和导入的Ad Hoc Provisioning文件设置值
  8. 确保我的应用程序.plist文件中的选项“应用程序需要iPhone环境”设置为true
  9. 运行清理(Product / Clean),然后仅构建(Product Build)
  10. 确保该应用程序未安装在我的iPhone上(因为我之前是通过XCode进行测试的)
  11. 通过拖放将目标(组产品通过Show in Finder)复制到iTunes中(我将其拖放到媒体部分)
  12. 通过拖放将Ad Hoc Provisioning文件复制到iTunes中(也是到媒体部分)
  13. 确保已选中同步该应用程序,同步iTunes和iPhone
  14. 最后重新启动了我的iPhone!然而,我非常确定,这可能仅会发生在开发者设备上。我猜测原因是仍然存在于iPhone上的一个进程,来自我通过XCode进行的上次测试。

我没有使用entitlements文件。实际上,我要找出这个文件的真正作用,我读到它可能只在使用iCloud时需要。在XCode 4.2开发者中,再也找不到像File / New / Entitlement Template这样的东西了。该文件将在您在目标的摘要选项卡中选中Entitlements选项并为文件命名后立即创建。

您还可以下载苹果的iPhone配置实用程序

我还将向我的beta测试人员推荐此工具,因为它允许您查看iPhone的控制台日志,这在出现错误时可能非常有帮助。

希望这个总结对其他人设置他们的应用程序进行第一次Ad Hoc分发有所帮助。

干杯,René


3

代码签名很简单。

首先,您需要为应用程序的包标识符创建一个移动配置文件,并添加要构建应用程序的设备。对于adhoc构建,请在分发选项卡中进行。下载它,双击将其添加到钥匙串中。

现在,在Xcode中选择您的应用程序。选择正确的配置文件(代码签名)。将命令行构建设置为分发。哦,我忘了创建一个新文件(entitlements.plist),将其内部的debug设置为false,在目标中添加其相对路径,就在指定的代码签名之上。现在,在左上角选择iOS设备(您选择模拟器的位置),按command+b键构建应用程序。应用程序将位于产品文件夹中(在底部),在Finder中找到它并将其拖到iTunes中,也可以拖入配套的配置文件,然后同步即可。完成。


9
我不同意 iOS 的代码签名很“简单”,您的解释超过 10 步也证明了这一点。但是感谢您列出这些步骤,它们非常有帮助。 - Ralph Pina

0

谢谢Rakesh,我已经看过了,只是通过阅读其他教程和帖子,认为可能不够全面。但是我对第四步共享应用程序还不清楚。这是仅来自XCode中的.app文件,还是必须像教程中所解释的那样创建一个存档(.ipa)?谢谢。 - renesteg
@renesteg 应用程序和ipa均适用于分享。实际上,ipa是一个带有iTunes图标和其中一个应用程序的zip档案。 - iHunter
我在自己的iPhone上尝试了一下。导入了.app和分发配置文件。唯一发生的事情就是它出现在iPhone上作为一个图标。但是,只要我开始它,它似乎就会崩溃。我已经通过Xcode进行了测试,在模拟器和设备上都可以顺利运行,没有任何问题。我猜我还是缺少什么?也许我需要以不同的方式编译它?我想这可能与其他教程中提到的代码签名有关。我为iOS设备构建了一个版本,因为我认为为模拟器构建的版本不行。 - renesteg
我认为问题出在Xcode的设置中。一个提示:检查.plist文件中的“应用程序需要iPhone环境”是否为YES。当该属性意外设置为NO时,我遇到了一些问题。 - rakeshNS
@renesteg:只有当你想制作ipa文件或提交到AppStore时才需要分发配置文件。如果你想在设备上运行应用程序(通过XCode),则需要使用预配配置文件进行代码签名。如果你想与他人共享应用程序,则可以将.app文件(在XCode项目的“产品”下找到)和用于签署应用程序的预配配置文件提供给他们。还有一件事,预配配置文件必须识别该设备。因此,请先在预配门户中添加要测试的设备的UDID。 - George

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接