我正在调试Nextcloud桌面客户端的一个Finder同步扩展崩溃了,这个扩展崩溃时不会生成崩溃日志或有用的输出,所以我正在尝试弄清楚如何给它附加一个调试器,这样我就可以看到它的源代码中哪里发生了崩溃。
Nextcloud是使用cmake开发的,所以我没有一个Xcode项目可以用来遵循调试Finder同步扩展的正常工作流程。我尝试使用cmake -G Xcode
生成一个Xcode项目,但它生成的当然是一个完全非标准的Xcode客户端,其中实际上没有Finder同步扩展目标。
当涉及到cmake时,是否有任何方法可以调试扩展?
1条答案
按热度按时间2g32fytz1#
我最终调试了Finder扩展,在本例中,Nextcloud Desktop的git repo已经为此设置了一个Xcode项目。
但诀窍是创建一个有两个目标的Xcode项目,一个应用程序和一个Finder扩展,然后确保扩展包含在应用程序中。应用程序可以只是一个shim --Xcode为基本的可可应用程序创建的默认代码应该是可以的。使用与cmake项目相同的源文件和构建设置来手动设置它。为它们提供与cmake正在编译的实际应用相同的捆绑包ID和授权。然后,按照常规步骤调试Finder扩展(参见this question的答案)。
它看起来确实很挑剔,有时我需要尝试几次才能成功地将Xcode附加到扩展上,而且经常需要不止一次地重新启动Finder。但最终它还是起作用了。