5

我正在尝试创建 XPC 服务,但似乎没有创建该服务。在我的服务的主要方法中,我做的第一件事是调用 syslog,以便我可以查看服务是否开始运行。这些日志消息永远不会出现在日志中。

我检查了所有包标识符、可执行文件名称和包层次结构,但似乎仍然没有创建服务。在应用程序中,当我通过 XPC 服务连接创建并发送消息后,立即调用我的事件处理程序并出现 XPC_ERROR_CONNECTION_INVALID 错误。我正在使用基于 C 的 XPC API。

还有什么我可以尝试做的以确保至少创建 XPC 服务吗?

4

3 回答 3

6

事实证明,我需要对应用程序目标和 XPC 服务目标进行代码签名。这可以在 Xcode 项目构建设置中完成,并且可以设置为“Ad-hoc Code Sign”,而无需 Mac 开发者证书。

在此处输入图像描述

于 2012-10-30T19:45:19.933 回答
2

还要检查您的服务名称。我发现项目模板中的默认示例不包含完全限定名称。在客户端代码中,我不得不改变这个:

NSXPCConnection *connection = [[NSXPCConnection alloc] initWithServiceName:@"MyNetworkClient"];

对此:

NSXPCConnection *connection = [[NSXPCConnection alloc] initWithServiceName:@"com.example.MyNetworkClient"];

仔细检查 XPC 目标的 Bundle ID 是否是您用于服务名称的。就我而言,它没有启动 XPC,也没有显示任何错误或控制台日志。

于 2014-09-15T14:24:54.827 回答
1

我有一个类似的错误,但解决方案是:干净,干净的构建文件夹,构建。

然后,通过魔术,它按预期工作。

于 2013-03-22T11:05:28.930 回答