2011-03-26 82 views
13

我正在尝试使用工具来查看我的Monotouch应用程序中的资源使用情况。但是,我无法通过乐器启动应用程序。为什么仪器不能执行我的Monotouch应用程序?

当我打的仪器记录按钮,应用程序在我的iPhone推出,热闹非凡(表示这是一个调试版本),然后崩溃 - 和仪器报道:

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

该应用程序运行正常,当我启动它直接在手机上。

我试过它与调试版本和临时版本(使用Monotouch support page上定义的参数)。总是一样。

我使用Monotouch 3.2.5,iOS 4.3.1(在3GS上),Xcode 4和Snow Leopard。

我已经看到这个问题在网络上的一些地方提到过,但还没有看到解决方案。任何人都知道如何解决它?

回答

17

这是一个签名问题:在Instruments的控制下运行,应用程序使用发布版本设置进行编译,而不是调试版本设置,这通常意味着应用程序使用分发证书而不是开发人员证书签名。 应用程序需要使用Instruments的开发人员证书签名才能控制它。 在发布版本上将签名选项更改为开发人员,您应该没问题。

0

从XCode内部启动仪器如何?如果您使用的是Xcode 3,则它位于“生成”菜单中,然后使用性能工具运行。这将启动乐器并自动开始录制。

+0

我正在使用MonoTouch,因此代码位于不同的IDE(MonoDevelop)中。 – dommer 2011-03-30 12:45:10

+0

对不起,完全错过了标题中的Monotouch参考。 – detra83 2011-03-30 22:08:42

2

检查您的Entitlements.plist签名的应用程序。如果get-task-allowfalse,则会阻止仪器附加到该过程。

3

我也遇到了这个问题,在Xcode 4.什么工作对我来说是......

在Xcode 4中,连接的iOS设备上运行。 手动启动仪器应用程序。 选择我的模板(在这种情况下为TIme Profiler)。 从目标菜单中选择我的应用程序(在录制按钮的右侧)。 单击录制按钮。

建议的权利解决方案并不适用于我(因为权利显然不再需要在Xcode 4中)。

建议的签名解决方案也不起作用。此外,每次我想用仪器进行测试时都会改变这一点,这很不方便。

相关问题