如何通过Mac-catalyst应用程序的CloudKit数据库订阅调试“获取错误断言”?

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

我有一个正在运行的本机iPhone / iPad应用程序,现在我也想作为Mac Catalyst应用程序来做。一切似乎都正常,除非我在iOS版本上输入内容,否则会“破坏” macOS版本–我正在使用CloudKit和CloudKit订阅来监听数据库中的更改。

我将此记录入日志3次:

2020-04-25 09:58:35.612887+0300 MyApp[2871:206093] [assertion] Error acquiring assertion: <NSError: 0x600000d4cb40; domain: RBSAssertionErrorDomain; code: 2; reason: "Specified target process does not exist">
2020-04-25 09:58:35.613919+0300 MyApp[2871:206093] [assertion] Error acquiring assertion: <NSError: 0x600000d4d290; domain: RBSAssertionErrorDomain; code: 2; reason: "Specified target process does not exist">
2020-04-25 09:58:35.615102+0300 MyApp[2871:206093] [assertion] Error acquiring assertion: <NSError: 0x600000d4de00; domain: RBSAssertionErrorDomain; code: 2; reason: "Specified target process does not exist">

该行为确实很奇怪。 macOS版本实际上并没有崩溃,但是主窗口消失了,我必须在XCode中对其进行重建,然后再次运行。我曾尝试在通知流中添加断点等,但是没有什么可以抓住的,所以我真的很沮丧。收到通知时,不会调用任何通常的应用程序方法。在调试模式下,模拟器和设备以及生产中都会出现相同的问题。

确实希望获得一些指导,以在何处/如何调试此类问题。我已经检查了系统日志,也无法在其中找到任何内容。

ios swift macos cloudkit maccatalyst
1个回答
0
投票

刚遇到这个问题,并最终弄清楚了:您的计算机上可能有多个应用程序实例(具有该捆绑包ID),而推送通知服务正试图旋转错误的二进制文件来传递通知。

由于Catalyst应用程序尝试打开多个实例会受到干扰,因此这种后台启动会杀死您在调试器中运行的应用程序。

就我而言,我已经在/ Applications中安装了应用程序的App Store版本(在我开始添加CloudKit之前,并且我当前的开发二进制文件在我的Xcode构建根目录中。

希望有帮助!

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