当我激活WatchApp InterfaceController时。它首先要做的是尝试通过调用" OpenParentApplication"来唤醒parentApplication(或根据文档,在后台激活它)。方法。
但是,在我手动激活父iPhone上的应用程序之前,该方法没有响应。这也是一个" XXX意外退出",这意味着当我打电话给我的主机应用程序时,由于某种原因它崩溃了。
激活后,我可以自由地与" OpenParentApplication"交换信息。方法
根据文档,方法
基本上,只要调用该方法,无论回复闭包如何,都应该唤醒父进程。
我的代码非常类型安全,nil值导致崩溃问题,它可能是什么?
PS:我无法调试主机应用程序,因为我只能在主机应用程序启动后附加到进程,这从未发生过。
答案 0 :(得分:2)
由于openParentApplication
在后台启动您的应用程序,因此将不会调用在应用程序启动时自动调用的许多方法。例如,在正常启动时,您的初始视图控制器将调用viewDidLoad
,viewWillAppear
,viewDidAppear
。如果这些方法中的任何一个配置非界面元素所依赖的应用程序状态的关键方面,那么当您在后台启动时,您的应用程序存在崩溃的高风险 - 但如果先前已在{{{}之前手动启动应用程序,则该应用程序不会崩溃1}}被召唤。
答案 1 :(得分:0)
实际上你可以在启动watch扩展后调试主应用程序。在Xcode中开始扩展后,转到Debug - >附加过程 - >你的主应用程序。 这将使您能够使用断点和日志记录。如果您的应用程序在那里丢失,请先尝试在设备上启动它,然后再尝试再次附加它。