Mac NSPersistentCloudKitContainer 崩溃的催化剂:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

Mac catalyst with NSPersistentCloudKitContainer crash: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

我的应用程序使用 NSPersistentCloudKitContainer,它在 iPhone 和 iPad 上运行良好。一旦我将它移植到 Mac (Catalyst),我就开始遇到 EXC BAD Instruction 崩溃,我无法理解它。

我决定使用 Catalyst 从 WWDC 2019 移植到 MacOS Apple 的 NSPersistentCloudKitContainer 演示项目,但我遇到了同样的崩溃。

我还尝试启动一个新的简单项目,我使用 Catalyst 将其移植到 MacOS,但它没有崩溃。所以,我的猜测是这个问题与新的 NSPersistentCloudKitContainer 有关..

有人遇到同样的崩溃吗?任何指导将不胜感激。

这是崩溃日志:

libxpc.dylib`___xpc_activity_dispatch_block_invoke.107.cold.3:
    0x7fff63df530b <+0>:  pushq  %rbp
    0x7fff63df530c <+1>:  movq   %rsp, %rbp
    0x7fff63df530f <+4>:  xorl   %edi, %edi
    0x7fff63df5311 <+6>:  callq  0x7fff63df53c0            ; symbol stub for: _os_assert_log
    0x7fff63df5316 <+11>: movq   %rax, %rdi
    0x7fff63df5319 <+14>: callq  0x7fff63df53d2            ; symbol stub for: _os_crash
->  0x7fff63df531e <+19>: ud2    

我终于得到了 Apple 支持的修复。问题在于在我的钥匙串中撤销了证书。所以,转到你的钥匙串,并查找你所有的苹果证书。选择它们后,您会注意到它们有效(绿色复选标记)或已撤销(红色圆圈十字)。删除所有已撤销的证书,但在执行此操作之前确保它们以有效形式存在。在我的例子中,所有被吊销的证书都是有效证书的副本。