15

在设备上而不是模拟器上运行 iPhone 应用程序时,是否可以实际使用 Xcode 调试器?即,我可以让设备在我在代码中设置的断点处停止并在代码在设备上运行时单步执行吗?

编辑:我应该提到我是 Apple 的注册开发人员并拥有有效的证书。事实上,我可以在我的设备上构建和运行 iPhone 应用程序。但是,即使在调试模式下,当我在设备上运行应用程序时,它也不会在断点处停止或输出到控制台。如果有帮助,当我在模拟器中运行时,我的应用程序在调试模式下正常运行(例如,在断点处停止)。

编辑2:我尝试过重置我的手机,完全删除并重新安装Xcode,创建一个新项目,更改本页答案中提到的所有设置(以及其他设置),清理和构建我的项目,构建和调试。 .. 如果我单击暂停,它会显示“来自调试器的错误:退出”。:( 也许我会尝试在另一台计算机上使用 Xcode 在此设备上进行调试,看看会发生什么。

编辑 3:好吧,我尝试在新项目中使用另一台使用全新安装的 Xcode 的计算机,但我仍然无法进行设备调试。我怀疑它可能是我的 iPhone 或电缆?我想我并没有那么无能,以至于我错过了一些如此令人尴尬的明显事情,但我已经仔细检查了这里提到的所有建议。

编辑 4:终于让设备调试工作。我感觉我的设备上的一些低级别的东西导致了问题……我在我的系统上没有做任何事情。但是,我在另一个系统上安装了 Xcode,并且在同一设备(使用同一根电缆)上进行的设备调试工作完美无缺。紧接着,设备调试开始在我原来的机器上工作,让我相信一些奇怪的硬件标志被搞砸了,并以某种方式在第二台机器上“重置”。无论如何,它现在可以工作了......感谢所有帮助。:)

另外,我不确定是否最好不回答这个问题或选择最“有用”的答案......

4

7 回答 7

10

是的——只需使用设备构建。您必须获得证书并提供它。

这是一个很好的描述:

http://boga.wordpress.com/2008/07/16/debugging-ipod-provision-profilescertificates/

于 2009-06-11T21:05:07.613 回答
4

Make sure to start debugging by pressing "Cmd-Y"... and not "Cmd-R" :-)

于 2009-06-13T06:40:46.957 回答
2

You may try last trick in case nothing can help.

If your application launched successful on your device from XCode but did not stop at breakpoints - try press "pause" button after start in debug mode. If you will see application paused properly (do not react to user's action) add new breakpoint then press "run" to continue application execution. In some cases it may helps to stop at new breakpoint.

于 2009-06-13T21:54:55.307 回答
1

是的,只需将您的项目设置为为设备构建。

于 2009-06-11T21:05:38.750 回答
1

如果您需要为越狱的 iPhone(最高 2.2.1)设置调试(尚未向 Apple 支付 99),请执行以下步骤:

  • 通过 Cydia 为您的 iPhone 安装 MobileInstallationPatch(使用搜索选项卡)

  • 在 XCode 中关闭 PROVISIONING_PROFILE:转到 /Developer/Platforms/iPhoneOS.platform/Info.plist,添加下一个键:

<key>PROVISIONING_PROFILE_ALLOWED</key>
<string>NO</string>
<key>PROVISIONING_PROFILE_REQUIRED</key>
<string>NO</string>

您还可以将这些键添加到任何项目中,特别是在 XCode、项目构建设置、用户定义的变量中。

重要的!您可能需要首先从 App Store 安装并启动至少一个合法应用程序(任何免费应用程序)(在“构建并运行”步骤之前)。否则,您的应用程序将通过 XCode 成功安装到您的设备上,但可能无法启动。如果应用启动出现问题,请先尝试此故障排除。

于 2009-06-11T23:23:10.293 回答
0

是的。调试器和性能工具在设备上运行良好。那是我进行大部分调试的地方。

于 2009-06-11T21:05:51.933 回答
0

Xcode>preferences>debugging uncheck load symbols lazily

为我修复了不存在设备问题的断点。

于 2009-06-12T13:01:19.793 回答