测试一个关闭的iOS应用程序

9
我目前正在尝试处理不同的应用程序状态(关闭,后台或在应用程序的不同标签中)。但是,当我尝试测试应用程序在关闭并接收推送通知时的工作情况(双击主页并强制关闭应用程序,然后重新打开它)时,我不确定代码哪里出了问题。由于我是从手机本身重新打开应用程序而不是从Xcode中进行测试,因此无法测试以查看哪种方法未被触及,因为控制台中没有输出。是否有任何方法可以测试这种情况,或者在Xcode中模拟强制关闭事件,以便当我在手机上重新运行应用程序时,它也在Xcode中启动?
感谢您的回复。 干杯!

按照以下说明设置和拦截您的推送通知:https://dev59.com/E2Af5IYBdhLWcg3wOQcL#24899303,您将解决任何与此相关的问题。 - Alessandro Ornano
3个回答

22
如果你强制关闭应用程序或从Xcode中停止,则会关闭与Xcode的连接。然后,如果你从手机上打开它,它将不会与Xcode建立连接。你必须从Xcode中运行它。而且,从手机上打开应用程序和从Xcode中运行应用程序没有区别。在这两种情况下,应用程序的流程都是相同的。因此,你想要测试哪些方法被调用以及它们的顺序,可以通过重新运行项目来检查。
更新:
- 在工具栏上选择方案(就在设备或模拟器列表左侧) - 选择编辑方案 - 选择左侧面板中的运行 - 对于启动选项,请选择等待可执行文件启动

enter image description here

参考此链接以获取更多详细信息


我唯一的问题是,当我通过Xcode关闭应用程序时,它不会强制关闭手机上的应用程序,而只是将其放在后台(推送通知在该状态下工作),但是如果用户在手机上强制关闭应用程序,则无法正常工作。 - Tyler Pierog

8

因为我是从手机上重新打开应用而不是通过Xcode测试,所以无法确定哪个方法未被调用,因为控制台中没有可用的输出信息。

在Xcode中,按住选项键并选择“Product-> Run ...”,然后编辑运行方案以使用“等待可执行文件启动”选项。然后,您应该能够选择在Xcode中运行,然后以其他方式打开您的应用程序,例如响应通知,Xcode仍将连接并允许您进行调试。


10
当我设置为“等待可执行文件启动”时,没有调试输出显示。 - Tyler Pierog

4
重新启动应用后,若需要调试进程,可将Xcode调试控制台附加到正在运行的进程上。在Xcode中进行如下操作:
Debug > Attach to process > [选择你的进程]

哪个是我的进程? - user5306470
1
进程应该使用你的应用程序名称。它通常显示在“可能目标”标题下的列表顶部。 - Hodson
是的,我现在找到了,但它只在应用程序正在运行时显示出来,那么实际上如何测试应用程序在关闭后的行为,而不必再次手动从Xcode构建它(这会打开它,从而破坏整个重点)? - user5306470

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