在Xcode和iOS中调试应用程序启动

12

我有一个非常具体的问题需要进行调试。我需要检查在应用程序被杀死后重新启动时发生了什么(查看正在读取的存储数据等)。如果我从设备中杀死应用程序,调试器会停止工作(这是有道理的)。

我能想到的最好方法是杀死应用程序,并从Xcode重新启动(不修改任何代码)。我试图研究“真实世界”的行为。这是否是我情况下的最佳方法,还是有其他方法可以使用Xcode查看正在发生的事情?


你是在说退出应用程序(双击主屏幕按钮并点击减号图标)还是将其挂起到后台(只需按下主屏幕按钮)? - adam0101
@adam0101 是的。我通过双击主屏幕按钮并手动停止应用程序来关闭它。 - Mike D
3个回答

22
在Xcode的Scheme编辑器中,您可以编辑Debug配置文件,使调试器“等待XY.app启动”。然后选择Product -> Run,调试器应该会等待您手动在设备上启动应用程序,然后自动附加到正在运行的进程。

假设我不修改任何代码,那么可以安全地假设存储在“文档”目录和NSUserDefaults中的所有数据都会被保留吗? - Mike D
是的,我肯定会这么说。 - Ole Begemann
它在模拟器上能运行吗?我发现它不能。它没有将可执行文件移动到模拟器。 - Paweł Brewczynski
1
请记住以下这个 bug:https://openradar.appspot.com/radar?id=4983181564444672 - kubilay

3

如果你想完全避免构建和运行阶段/更改构建配置,你可以通过以下方法实现冷启动重新附加:

  • 进入Debug菜单 > 按PID或名称附加到进程...
  • 在第一个输入框中输入你的应用程序名称并点击附加

然后你会看到"等待附加到 somedevice 上的 APPNAME",然后你可以在模拟器上重新打开应用程序。


对我来说不起作用,我正在使用真实设备。 - famfamfam

-1

Xcode启动后调试应用程序

  1. -> 运行 -> 信息 -> 等待可执行文件启动
调试 -> 通过进程ID或名称附加进程... -> <app_name> -> 附加 之后,您将在调试导航器中看到调试器正在等待附加(如果应用程序已从内存中删除)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接