【问题标题】:Why won't instruments execute my Monotouch application?为什么仪器不执行我的 Monotouch 应用程序?
【发布时间】:2011-07-23 11:24:20
【问题描述】:

我正在尝试使用 Instruments 查看 Monotouch 应用中的资源使用情况。但是,我无法通过 Instruments 启动该应用。

当我点击 Instruments 中的录制按钮时,应用程序在我的 iPhone 上启动,发出嗡嗡声(表示它是调试版本),然后崩溃 - 并且 Instruments 报告:

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。

我在网络上的一些地方看到过这个问题,但还没有看到解决方案。有人知道怎么解决吗?

【问题讨论】:

    标签: iphone profiling xamarin.ios instruments


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我在使用 Xcode 4 时也遇到了这个问题。对我有用的是...

      从 Xcode 4 开始,在连接的 iOS 设备上运行。 手动启动 Instruments 应用程序。 选择我的模板(在本例中为 TIme Profiler)。 从 Target 菜单(在 Record 按钮的右侧)中选择我的应用程序。 点击录制按钮。

      建议的权利解决方案对我不起作用(因为 Xcode 4 中显然不再需要权利)。

      建议的签名解决方案也不起作用。此外,每次我想用 Instruments 测试时都更改它会很不方便。

      【讨论】:

        【解决方案3】:

        检查您的 Entitlements.plist 以获取已签名的应用。如果get-task-allowfalse,它将阻止 Instruments 附加到进程。

        【讨论】:

          【解决方案4】:

          从 XCode 中启动 Instruments 怎么样?如果您使用的是 Xcode 3,它位于 Build 菜单中,然后使用性能工具运行。这将启动 Instruments 并自动开始录制。

          【讨论】:

          • 我使用的是 MonoTouch,所以代码在不同的 IDE (MonoDevelop) 中。
          • 抱歉,完全错过了您标题中的 Monotouch 参考。
          猜你喜欢
          • 2012-07-07
          • 2013-07-19
          • 1970-01-01
          • 2014-01-30
          • 2014-05-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多