从 com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export 的 EXC_BAD_INSTRUCTION。

问题描述 投票:9回答:1

我有一个应用在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) 

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

我使用的是iOS13的NSPersistentCloudKitContainer。堆栈跟踪是否指向了里面的bug?

ios swift cloudkit maccatalyst
1个回答
2
投票

我浪费了这么多时间去了解问题的根源,希望这个答案能帮助到很多人。

这个问题现在好像持续了很久,一直没有解决,也没有明白。但我在评论中看到的大提示。 这种崩溃只发生在应用程序从Xcode内部运行时。

另一个重要提示:你可以可以直接从Finder运行你的构建产品而不崩溃。即使它是一个 "Debug "构建。

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

你可以在你的目标方案中找到这个选项。

  1. 在窗口栏中点击你的目标
  2. 选择 "编辑方案..."
  3. 确保选择 "运行",并去掉 "调试本应用程序使用的XPC服务 "的复选标记。

希望对大家有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.