1

当我激活我的 WatchApp InterfaceController。它所做的第一件事是尝试通过调用“OpenParentApplication”方法来唤醒 parentApplication(或根据文档,在后台激活它)。

但是,在我手动激活父 iPhone 上的应用程序之前,该方法没有响应。它还以“XXX Unexpectedly Quit”向我打招呼,这意味着当我调用我的主机应用程序时,由于某种原因它崩溃了。

在此处输入图像描述

激活后,我可以通过“OpenParentApplication”方法自由交换信息。

根据文档,该方法

在此处输入图像描述

本质上,只要调用该方法就应该唤醒父级,而不管回复闭包如何。

我的代码类型非常安全,零值导致崩溃是不可能的,它可能是什么?

PS:我无法调试主机应用程序,因为我只能在主机应用程序启动后附加到进程,而它从来没有这样做过。

4

2 回答 2

2

由于openParentApplication在后台启动您的应用程序,因此在您的应用程序启动时会自动调用的一些方法将不会被调用。例如,在正常启动中,您的初始视图控制器将调用viewDidLoad, viewWillAppear, viewDidAppear. 如果这些方法中的任何一个配置了非界面元素所依赖的应用程序状态的关键方面,那么您的应用程序在后台启动时就有很高的崩溃风险——但如果之前openParentApplication调用之前手动启动过,应用程序不会崩溃.

于 2015-02-14T02:37:50.550 回答
0

实际上,您可以在启动监视扩展后调试主应用程序。在 Xcode 中启动扩展后,转到 Debug -> Attach process -> your main app。这将使您能够使用断点和日志记录。如果您的应用在那里丢失,请先尝试在设备上启动它,然后再尝试重新附加它。

于 2015-08-13T16:57:53.167 回答