问题描述
我能够set up my Xcode Source Editor Extension to work with XPC。
当我通过 Xcode 运行应用程序进行调试时,一切正常。我的 xpc 扩展已启动。
然后我将项目存档并分发(用于开发)。安装扩展并调用命令后,xpc 服务永远不会启动。我在活动监视器中没有看到它。
命令“Foo”仍然很忙。
为什么在debug模式下可以正确打开xpc服务,但是我分发app的时候却无法启动xpc服务?
我的 xpc 扩展(和应用)依赖于 shared framework I created。不确定这是否与问题有关。
解决方法
调试此问题的最佳方法不一定是查看控制台消息,而是查看控制台应用中的崩溃报告。去的时候发现XPC服务每次运行都崩溃。
崩溃是:
Termination Reason: DYLD,[0x1] Library missing
这让我意识到我应该仔细检查我在 upgrading from Objective-C XPC to Swift XPC 时使用的设置。特别是,让我感到困惑的部分是 the article 说要设置 Runtime Search Paths: @loader_path/../../../../Frameworks
。原来它应该被添加,而不是从列表中删除。
我从以下位置切换了 XPC 的运行路径搜索路径:
$(inherited)
@loader_path/../../../../Frameworks
到
$(inherited)
@executable_path/../Frameworks
@loader_path/../Frameworks
@loader_path/../../../../Frameworks
XPC 服务不再崩溃。