在模拟器上调试AppleWatch应用程序时,iOS应用程序立即崩溃(不在设备上)

时间:2015-05-22 01:08:25

标签: ios xcode swift watchkit apple-watch

我有一个在Simulator和Device中运行良好的AppleWatch应用程序,但是当我调用openParentApplication时,看来父应用程序立即崩溃,因为我在控制台输出中看到了这个:

  

iPhone App中的UIApplicationDelegate从未调用reply()...

当我尝试在模拟器中手动启动父iOS应用程序时,它立即崩溃。我没有时间附加调试器(已经附加到AppleWatch应用程序)以查看崩溃的原因。请注意,当AppleWatch运行并且我正在使用真正的iPhone时,父应用程序运行正常。我还可以在不调试AppleWatch应用程序时在模拟器上运行应用程序。

我已尝试重置模拟器,但问题仍然存在。

我只是不确定如何调试它。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

您是否看到了实际的崩溃?在没有主机应用程序崩溃的情况下,很多次出现了这条消息。

99%的时间出现该错误,因为开发人员没有打开后台任务来完成handleWatchKitRequest中的工作。如果没有后台任务,操作系统会在有机会回复之前在后台杀死您的应用。

答案 1 :(得分:0)

handleWatchKitRequest中启动明确的后台任务。否则,您的应用会在到达reply()之前被杀死。

有关如何创建后台任务的代码示例,请参阅此post

答案 2 :(得分:0)

事实证明,在评论出父应用程序中的所有代码之后,didFinishLaunching并从手表扩展程序中删除了几乎所有代码,问题确实处于较低级别。

模拟器有一个

  

调试|打开系统日志...

显示崩溃日志的

菜单选项,其中包含:

  

Dyld错误消息:未加载库:   @ rpath / MyCore.framework / MyCore参考自:   /Users/me/Library/Developer/CoreSimulator/Devices/A2061705-DDDF-477C-9AAA-E50GG43A6350/data/Containers/Bundle/Application/DEB7FB25-8233-4B9F-8DAB-9FF8AE42BF33/MyApp.app/MyApp   原因:找不到合适的图像。找到了:     /Users/me/Library/Developer/CoreSimulator/Devices/A2061705-DDDF-477C-9AAA-E50FF43A6350/data/Containers/Bundle/Application/DEB7FB25-8553-4B9F-8DAB-9FF8AE95BF33/MyApp.app/Frameworks/MyCore.framework / MyCore:   mach-o,但错误的架构

我的Swift应用程序有一些应用程序和扩展程序使用的依赖Swift项目。让Swift框架链接起来是一个很大的痛苦。我已将依赖框架(在同一工作区中编译)包含在嵌入式二进制文件中。这在设备或模拟器上运行时有效,但在此混合监视应用+父应用模拟器上下文中运行时无效。

我将嵌入式二进制引用更改为指向...DerivedData...Debug-iphonesimulator下的框架,而不是...DerivedData...Debug-iphoneos,问题就消失了。

仍然希望Swift框架的故事能够得到改善。