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

标签 ios swift cloudkit mac-catalyst

我有一个在 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。堆栈跟踪是否指向那里的错误?

最佳答案

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

这个问题似乎已经存在很长时间了,并且没有得到解决,也没有被理解。但我在评论中读到的重要提示:
仅当应用程序从 Xcode 中运行时才会发生此崩溃。

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

基于此,我得出的结论是该问题与Debug执行环境有关,我找到了解决方案:禁用“调试此应用程序使用的 XPC 服务”
此选项使用的调试代码中一定存在一些错误。

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

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

  • 我希望这对大家有帮助!

    关于ios - 来自 com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export 的 EXC_BAD_INSTRUCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58758353/

    相关文章:

    swift - ARKit——在不可见平面下渲染 3D 对象

    cloudkit - 无法检索 CKRecords 以解决 CKModifyRecordsOperation 中 CKErrorCodeServerRecordChanged 的​​冲突

    swift - CloudKit - 使用一种字段类型获取 5 条记录...需要 3-4 秒。为什么这么慢?

    ios - 如何编写带有参数的url请求以便返回字符串?

    ios - 单击 GoogleSignIn 按钮时应用程序崩溃

    cocoa - Swift:为类类型过滤 NSSet

    core-data - 如何有效地在Core Data和CloudKit之间同步记录

    ios 检查是否 nsarray == null

    ios - 为什么在 dealloc 前没有移除 KVO observer 会导致 app crash?

    iphone - 中文环境默认字体是什么?