来自 com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export 的

Posted

技术标签:

【中文标题】来自 com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export 的 EXC_BAD_INSTRUCTION【英文标题】:EXC_BAD_INSTRUCTION from com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export 【发布时间】:2020-03-04 14:26:48 【问题描述】:

我有一个在 ios 上运行良好的应用程序,但是当使用催化剂运行时,如果我在 macOS 上滑动到另一个虚拟桌面,然后再返回大约 10 次,它会间歇性地崩溃。它主要发生在 UICollectionViewController

这是回溯:

(lldb) bt
* thread #5, queue = 'com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
  * frame #0: 0x00007fff68c373ae libxpc.dylib`___xpc_activity_dispatch_block_invoke.107.cold.3 + 19
    frame #1: 0x00007fff68c1ecdb libxpc.dylib`___xpc_activity_dispatch_block_invoke.107 + 746
    frame #2: 0x00000001010377b3 libdispatch.dylib`_dispatch_call_block_and_release + 12
    frame #3: 0x000000010103878f libdispatch.dylib`_dispatch_client_callout + 8
    frame #4: 0x000000010103fd31 libdispatch.dylib`_dispatch_lane_serial_drain + 777
    frame #5: 0x0000000101040ae8 libdispatch.dylib`_dispatch_lane_invoke + 438
    frame #6: 0x000000010104df2e libdispatch.dylib`_dispatch_workloop_worker_thread + 681
    frame #7: 0x00000001010c4053 libsystem_pthread.dylib`_pthread_wqthread + 290
    frame #8: 0x00000001010c3eb3 libsystem_pthread.dylib`start_wqthread + 15
(lldb) 

我尝试过查看代码、添加打印语句、添加断点、注释掉某些部分等,试图找出我的代码的哪一部分导致了这种情况,但到目前为止都失败了。

我正在使用 iOS 13 中的 NSPersistentCloudKitContainer。堆栈跟踪是否指向其中的错误?

【问题讨论】:

你有没有想过这个问题?我也有同样的问题。 这里有同样的问题,但在 Mac 上... 值得一提的是,这个问题似乎只在直接从 Xcode 运行时出现。导出的发布版本似乎没有任何问题。我还没有使用最新的 Xcode 和 SDK 对其进行测试,所以也许这可以解决问题... 有人知道如何解决这个问题吗? 在 macOS 上出现同样的崩溃。在我的项目中,它看起来只有在我将聚光灯与 CoreData 一起使用时才会发生。我还使用 Apple 的示例代码对其进行了复制,并为其提交了反馈 - FB7677591。最后,由于这真的很烦人,我还开了一个开发者的支持票,所以我实际上正在与苹果技术支持团队联系。手指交叉... 【参考方案1】:

我浪费了很多时间试图了解问题的根源,并希望这个答案可以帮助许多其他人。

这个问题现在似乎持续了很长时间,并且没有被修复,也没有被理解。但我在 cmets 中读到的重要提示: 只有在 Xcode 中运行应用时才会发生这种崩溃。

另一个重要提示:您可以直接从 Finder 运行构建产品而不会崩溃。即使它是“调试”版本。

基于此,我得出的结论是问题与Debug执行环境有关,我找到了解决方案:禁用“Debug XPC services used by this application” 该选项使用的调试代码一定有bug。

您可以在目标方案中找到此选项。

    在窗口栏中单击您的目标 选择“编辑方案...” 确保选中“运行”并取消勾选“调试此应用程序使用的 XPC 服务”

希望对大家有帮助!

【讨论】:

仍然因“___xpc_activity_dispatch_block_invoke.109.cold.3”而崩溃,但可能不那么频繁了 @Munhitsu 嗯...? 这正是我在“调试 XPC 服务”仍然启用时遇到的错误位置。您是否确认您在正确的方案上禁用了 Debug XPC?您的项目中可能有多个方案。您能否确认,直接从 Finder(=Catalyst 应用程序?!)运行您的产品不会导致崩溃?

以上是关于来自 com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export 的的主要内容,如果未能解决你的问题,请参考以下文章

书评:男人来自火星,女人来自金星-约翰.格雷

为啥 WCF 服务能够处理来自不同进程的调用而不是来自线程的调用

来自 viewDidAppear 的 Segue 调用有效,但不是来自 viewWillAppear

求职作业帮 C++方向面经

来自 CWnd 的 ReleaseDC 覆盖来自 winuser 的 ReleaseDC

来自麦克风的声音与来自扬声器的声音