ios - 来自 com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export 的 EXC_BAD_INSTRUCTION
问题描述
我有一个在 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执行环境有关,我找到了解决方案:禁用“Debug XPC services used by this application”
该选项使用的调试代码中一定存在一些错误.
您可以在目标方案中找到此选项。
- 在窗口栏中单击您的目标
- 选择“编辑方案...”
- 确保选中“运行”并取消选中“调试此应用程序使用的 XPC 服务”的复选标记
我希望这对大家有帮助!
推荐阅读
- ios - 为什么我不能在第二类中调用 .send 类中的发布者并让它更新第三类中的订阅?
- ruby-on-rails - Sidekiq 多个依赖作业,何时完成或重试?
- ruby-on-rails - 在我刷新整个页面之前,acts_as_votable ajax 不会更新数据
- neo4j - 使用 neo4j-admin 导入加载后 Neo4j 数据库不可见
- reactjs - 在状态中设置一个空数组
- aws-codepipeline - AWS CodePipeline 中配置文件的转换/替换
- laravel - Laravel 为前缀操作创建链接
- javascript - javascript什么时候抛出引用错误?
- java - Spring Boot Data JPA 无法连接到 VirtualBox Ubuntu MySQL 服务器
- python - BS4 Scraping:获取有时会更改位置的跨度文本