Как отладить сбой Core Data Cloudkit в приложении macOS
У меня есть приложение для iOS Core data, которое использует Cloudkit с использованием NSPersistentCloudkitContainer - iOS 13 и новее. Я тестировал его на iPad и iPhone, и синхронизация работает хорошо. Теперь я попытался добавить Cloudkit в аналогичное приложение Mac, используя тот же контейнер Cloudkit (все еще в разработке). Опять же, это работает в отношении синхронизации, но довольно часто добавление / удаление объектов на iPad приводит к сбою на Mac, как показано ниже:
**libxpc.dylib`___xpc_activity_dispatch_block_invoke.109.cold.3:
0x7fff70a14423 <+0>: pushq %rbp
0x7fff70a14424 <+1>: movq %rsp, %rbp
0x7fff70a14427 <+4>: xorl %edi, %edi
0x7fff70a14429 <+6>: callq 0x7fff70a144d8 ; symbol stub for: _os_assert_log
0x7fff70a1442e <+11>: movq %rax, %rdi
0x7fff70a14431 <+14>: callq 0x7fff70a144ea ; symbol stub for: _os_crash
-> 0x7fff70a14436 <+19>: ud2 **
Я использую NSFetchedResultsControllerDelegate с некоторой отладкой в функции didChange. Иногда я вижу проблему до сбоя, например, когда говорится, что собирается вставить объект в строку 6, когда в самой таблице всего 4 строки. Я не всегда получаю такое сообщение.
В FetchedResultsControllerDelegate didChange я поместил отладку в часть переключателя.delete. Я видел подобные попытки удалить элемент 8, когда в таблице всего 7. Я не позволяю ему этого делать, но в итоге не удаляю нужный мне элемент. Похоже, запросы на изменение CloudKit поступают в "неправильном" порядке??
Пожалуйста, кто-нибудь может предложить, как я могу отладить это? Спасибо.