问题标签 [nsxpcconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
703 浏览

kill - 在父应用程序仍在运行时终止 XPC

我的父应用程序使用 helper XPC 来完成一些任务 T1。XPC 服务是使用 NSXPCConnection 实现的。一旦任务完成,我就不需要这个 XPC 还活着。因此,父进程在 NSXPCConnection 对象上调用 invalidate。但是,即使连接无效,XPC 仍然存在。我可以看到它在活动监视器中列出。

当父应用程序仍在运行并且不需要 XPC 处于活动状态时,如何杀死此 XPC?

0 投票
1 回答
567 浏览

tcpserver - 将套接字与 NSXPCConnection 一起使用

使用带有 NSXPCConnection 的套接字时遇到问题。

基本上,有一个主进程和一个辅助进程正在运行,通过 NSXPCConnection 建立。该辅助进程需要充当服务器并侦听特定端口(例如 111),该端口接收外部连接。

助手进程使用Apple 提供的TCPServer助手类(wrapper around )打开一个监听套接字。CFSocket代码在这里找到: https ://code.google.com/p/iphone-remotepad/source/browse/trunk/RemotePad/TCPServer.h?r=238

套接字在 中成功打开- (BOOL)start:(NSError **)error

外部客户端可以建立与 111 端口。(通过终端测试telnet localhost 111)。

但是,辅助进程永远不会收到 TCPServer 回调TCPServerAcceptCallBack

助手进程已com.apple.security.network.client启用权利。

此外,当我在主应用程序而不是辅助进程中运行 TCPServer 时,在端口 111 上设置服务器,并尝试连接到端口 111,我确实收到了回调。

关于帮助程序进程为什么没有收到套接字回调的任何想法?XPC 相关问题?

0 投票
1 回答
602 浏览

objective-c - 从应用扩展(共享)中调用 XPCService

我有一个应用程序,它是一个共享应用程序扩展和 XPC 服务的容器应用程序。XPC 服务创建一个NSUserNotification并将其传递给NSUserNotificationCenter.

如果我从容器应用程序中连接到 XPC 服务,我可以成功调用它。

如果我尝试从扩展中连接到 XPC 服务,它什么也不做。

我的目标是在共享扩展完成后显示用户通知。共享扩展本身无法创建用户通知,但我似乎也无法让 XPC 调用正常工作。

0 投票
2 回答
1471 浏览

objective-c - 在我的 Swift 应用程序中使用来自 XPC 服务的 Objective-C 协议

我有一个用 Swift 编写的应用程序,专门用 Swift 编写,从来没有 Obj-C 类,没有 Obj-C 文件或桥接头。

为了在不影响我的应用程序权利的情况下添加一些功能,我正在尝试添加一个 XPC 服务——我在 Xcode 中创建了它,而 Xcode 中 XPC 服务的模板仅是 Obj-C。

这很好,我在 Obj-C 中编写了我的服务,但是现在当我想通过我的服务调用我的服务时,NSXPCConnection我必须设置它的接口,为此我需要在我的 Swift 应用程序代码中引用,我为我的 XPC 目标编写的 Obj-C 协议。

我该怎么做呢?我不能只将“Protocol.h”添加到我的应用程序目标中,它没有 C 标头的规则。我发现的所有其他评论似乎只适用于链接到框架中的协议或共同目标......

0 投票
1 回答
101 浏览

ipc - IPC Chrome 到 Cocoa 应用

我有一个 Chrome 扩展程序,我想与我的本地 Cocoa 应用程序进行通信。我能够使用本机消息传递从扩展获取数据到命令行应用程序。我现在需要获取主 Cocoa 应用程序的信息。我正在研究 NSXPCConnection,但据我了解,xpc 辅助应用程序是由主应用程序生成的,但在这种情况下,Chrome 扩展程序会生成帮助程序。让这种应用程序间通信正常工作的最佳方法是什么

0 投票
1 回答
871 浏览

xcode - NSXPCInterface 构造函数无法识别 Swift 中的协议

我正在快速创建 XPC 服务,并创建了我的协议:

当我尝试通过使用协议初始化 NSXPCInterface 的新对象来设置导出对象实现的接口(在我的 main.swift 中)时,出现错误:

错误是:无法将类型“(MyProtocol).Protocol”(又名“MyProtocol.Protocol”)的值转换为预期的参数类型“Protocol”

谁能帮我解决这个错误?

0 投票
1 回答
764 浏览

objective-c - SMJobBless 和 NSXPCConnection

有一个 Apple SMJobBless示例展示了如何安全地安装帮助工具。SMJobBlessXPC在 Mach 端口上使用 XPC (c API) 用于应用程序和特权帮助工具之间的通信。

我需要 SMJobBlessXPC 使用 NSXPCConnection(Objective c API)。

0 投票
1 回答
502 浏览

objective-c - 如何通过脚本删除 XPCService

我使用 loginItems 运行的 xpcservices 为 os x 应用程序创建项目。这意味着该服务是在路径中的应用程序中建立的:{APP_NAME}.app/Contents/Library/LoginItems 并且负责运行该服务的人是主应用程序:

我构建了卸载程序,用于删除我安装的所有文件。我需要删除该服务。我用于它的命令:

如果我从终端运行它,这很好用,但如果我从脚本运行它,它会从“活动监视器”中删除该服务,但该服务仍然在状态为-5的launchctl列表中。所以如果我安装新版本,它会采用以前安装的版本。

我从 xcode 运行脚本NSTask。没有错误。它做了脚本应该做的事情。我什至设置了管理员权限:

为什么它不像我在终端中那样删除?

ps:从 Xcode 运行时它的工作原理(即使应用程序处于发布模式)

0 投票
4 回答
3021 浏览

objective-c - 使用 NSXPCConnection 时如何同步等待回复块

我正在使用 NSXPCConnection 并且我的一个接口调用有一个回复块,如下所示:

我这样称呼:

我的理解是回复块异步运行,并且可能在方法返回之后运行。

我想同步测试返回码,最好的方法是什么?


为了进一步阐明上面的代码片段:对象是使用该方法proxy从对象获得的远程对象。这是一个重要的细节,因为这会影响调用回复块的队列。NSXPCConnectionremoteObjectProxy

0 投票
2 回答
1207 浏览

macos - XPC 到 XPC 通信

我正在开发一个应用程序,我从主应用程序中分离出两个不同的 XPC 服务。我希望 XPC 服务与其他 XPC 服务进行通信,该服务将进行一些处理并将数据返回给第一个服务,第一个服务将进行自己的处理,然后将数据返回给主应用程序。我什至尝试过这个,但是服务之间的通信给出了“无法与帮助应用程序通信”的错误。

我的问题是这是否可能?如果是,那需要什么?

任何帮助,将不胜感激。