我有一个可以正常工作的原生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中重新构建它,然后再次运行它。我试着在通知流中添加断点等,但没有捕获到任何东西,所以我真的被难住了。当接收到通知时,不会调用任何常用的应用程序方法。同样的问题也出现在调试模式中,无论是模拟器和设备,还是在生产环境中。
我真的希望得到一些指导,在哪里/如何调试这类问题。我检查了系统日志,也找不到任何东西。
发布于 2020-04-27 11:07:37
我自己也遇到了这个问题,并最终弄明白了:您的机器上可能有多个应用程序实例(具有该捆绑包ID),而推送通知服务试图启动错误的二进制文件来传递通知。
由于Catalyst应用程序在尝试打开多个实例时会被nuked,因此此后台启动会终止您在调试器中运行的应用程序。
在我的例子中,我在/Applications中安装了App Store版本的应用程序(在我开始添加CloudKit之前),并且在我的Xcode构建根目录中安装了我当前的开发二进制文件。
希望这能有所帮助!
https://stackoverflow.com/questions/61422245
复制相似问题