Apple Watch OpenParentApplication 导致父应用程序崩溃而不是打开;必须从 iOS 模拟器手动激活父应用程序

Apple Watch OpenParentApplication causes parent application to crash instead of open; must manually activate parent application from iOS simulator

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

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

激活后,我可以用"OpenParentApplication"方式自由交流信息

根据文档,方法

本质上,无论回复关闭如何,只要调用该方法就应该唤醒父级。

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

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

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

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