2010-12-01 75 views
55

我开始在iPhone 3G上使用Instruments-Leaks。当我尝试使用iPhone上的Instruments运行应用程序时,我获得了使用仪器 - 使用设备泄漏

Target failed to run: Remote exception encountered: 'Failed to get task for pid 280' 

想法?

唯一一次我成功运行应用程序时,仪器运行速度非常慢,我无法测试它。 在设备上运行应用程序寻找泄漏的步骤是什么?

+0

虽然我无法直接帮助您解决您的问题,但[此处](http://mobileorchard.com/find-iphone-memory-leaks- a-leaks-tool-tutorial /)是我最近发现的有用指南。它会引导您完成一个示例项目,并向您展示如何使用仪器来查找泄漏。 – Stunner 2010-12-01 10:41:05

+0

谢谢。现在它运行,但它仍然非常慢... – Sefran2 2010-12-01 11:12:24

+0

这可能是一个很好的教程,但是对于错误没有帮助:'无法获得任务的XXX XXX' – johnnieb 2012-02-03 01:47:34

回答

146

我的解决方案是确保我的配置文件方案使用“调试”而不是“发布”构建配置。

在Xcode 4中,从顶部菜单 中选择产品/编辑方案,然后单击左侧的“配置文件”按钮。 在“信息”窗格中,您将看到“生成配置”的设置,将其设置为“调试”。

28

如果您尝试在选定了分发概要文件的设备上测试您的应用程序,也会引发此错误。确保你有正确的代码符号设置用于开发。

6

您可以剖析设备上的发布版本。你必须做的是用开发人员证书构建发布版本。请参阅here

0

仪器基本上通过成为应用程序的调试器来完成其工作。如果您无法运行Xcode的调试器,那么您无法运行Instruments。

大多数情况下,权利需要设置为允许调试。

有时在使用XCode调试应用程序后,我发现在重新启动设备之前我无法使用乐器。

与XCode不同,Instruments可能会在具有相同名称但不同捆绑ID的两个应用程序之间产生混淆。 (或者也许有相同的名称和类似的软件包ID。)当我在一个设备上有多个版本的应用程序时,我经常需要删除额外的软件才能让Instruments连接到正确的应用程序。如果你有一个调试版本和一个发布版本,这可能是问题所在。

因此,删除您的应用程序的任何重复,并重新启动设备。 (您可以更改发布和调试版本配置的显示名称。)