我正在尝试使用Instruments来查看Monotouch应用中的资源使用情况。但是,我无法通过Instruments启动应用程序。
当我点击Instruments中的记录按钮时,应用程序在我的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。
我看到在网络上的一些地方提到了这个问题,但是没有看到解决方案。任何人都知道如何解决它?
答案 0 :(得分:17)
这是签名问题:要在Instruments的控制下运行,应用程序使用Release构建设置进行编译,而不是Debug构建设置,这通常意味着应用程序使用您的分发证书而不是开发人员证书进行签名。 该应用程序需要使用Developer的开发人员证书进行签名才能控制它。 在Release版本中将您的签名选项更改为Developer,您应该没问题。
答案 1 :(得分:3)
我也遇到过Xcode 4这个问题。对我有用的是......
从Xcode 4开始,在连接的iOS设备上运行。 手动启动Instruments应用程序。 选择我的模板(在本例中为TIme Profiler)。 从目标菜单中选择我的应用程序(在“录制”按钮的右侧)。 单击“录制”按钮。
建议的Entitlements解决方案对我不起作用(因为Xcode 4中显然不再需要Entitlements)。
建议的签名解决方案也不起作用。此外,每次我想用仪器进行测试时,更改它都会很不方便。
答案 2 :(得分:2)
检查您的Entitlements.plist以查看已签名的应用。如果get-task-allow
为false
,则会阻止工具附加到流程中。
答案 3 :(得分:0)
如何从XCode内部启动仪器?如果您正在使用Xcode 3,它将在Build菜单中,然后使用性能工具运行。这将启动仪器并自动开始录制。