题 使用仪器 - 用设备泄漏


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

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

想法?

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


55
2017-12-01 10:30


起源


虽然我不能直接帮助你解决问题, 这里 是我最近发现有用的指南。它将引导您完成示例项目,并向您展示如何使用仪器查找泄漏。 - Stunner
谢谢。现在它运行了,但它仍然很慢...... - Sefran2
这可能是一个很好的教程,但是对于错误是无益的:'无法获得pid XXX的任务' - johnnieb


答案:


我的解决方案是确保我的Profile方案使用“debug”而不是“release”构建配置。

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


146
2018-03-28 10:43



您可能需要在设备上重新启动Xcode / clean / delete app(这些的一些组合)。 - Grav
这不是一个真正的解决方案吗?分析应该在Release版本上。 - bogardon
希望我能帮助投票。我想我已经回来了大约3次左右......谢谢! - DonnaLea
是的,有效 - rakeshNS
@ pumpk1n如果它可以在发布版本上会很好,但是如果发布版本没有连接分析器所需的钩子...... - Dave Cameron


如果您尝试在选择了分发配置文件的设备上测试您的应用,则也会引发此错误。确保您具有正确的开发代码签名设置。


28
2018-03-23 02:11



如果这确实是正确的,那么这是最好的答案 - 上面高度评价的答案也将解决问题,但对于我们这些在调试和发布配置文件之间具有显着性能差异的人来说,简单地使用Debug会有所不同。 .. - makdad
这对我也有用 - Sergi
+1这是我的问题。谢谢 - Damo


您可以在设备上配置发布版本。您需要做的是使用开发人员证书构建发布版本。看到 这里


6
2018-03-21 16:09





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

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

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

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

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


0
2018-02-14 07:49