问题标签 [xpc]

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 投票
1 回答
823 浏览

macos - 在 xpc 事件处理程序中调用 xpc_connection_send_message_with_reply_sync

在我正在开发的 XPC 服务中,我想调用xpc_connection_send_message_with_reply_syncxpc_connection_send_message_with_reply从服务的事件处理程序中调用(它从客户端请求一些额外的数据)。

它没有将消息发送回客户端,而是挂起。似乎只有在我的事件处理程序完成后才等待发送消息。

有没有办法与客户端进行通信而无需先从事件处理程序重新调整?

0 投票
1 回答
694 浏览

objective-c - Xcode 5 上的 XPC 测试包

我有带有自定义 XPC 服务的 Cocoa 应用程序。我想为那个 XPC 创建测试,所以我为此创建了新的测试包并创建了一些测试。但是当我运行这些测试(在 Xcode 中没有显示任何错误)时,IDE 无法将它们链接到经过测试的 XPC 包。当然,我将 Target Dependency 设置为我的 XPC 包,但它仍然不起作用。

我认为问题出在测试主机设置上,但我不擅长 Xcode 配置。我还研究了 Apple 的教程(守护程序和服务编程指南),但它没有提到测试 XPC 包。他们的例子都不是 SandboxedFetch。

0 投票
1 回答
304 浏览

appstore-sandbox - 线程和 XPC

我想在 XPC 服务中运行多个并发逻辑操作。但问题是,XPC 服务是单例的——它们要么正在运行,要么没有。我可以使用NSThread、调度队列或类似的东西来模拟这个吗?

将使用此 XPC 服务的应用程序是一个沙盒用户应用程序,它使用 XPC 服务来解决沙盒 fork/exec 中固有的限制。

0 投票
1 回答
1291 浏览

macos - Mac osx 上的 XPC 实现

XPC 服务不是作为单独的目标,而是作为在应用程序中实现侦听器委托的内置类。我在网上看到的所有示例都有单独的目标,它们制作 xpc 服务工具并将其复制到应用程序资源文件夹以支持传入连接。有没有办法像我想要的那样做?

0 投票
1 回答
514 浏览

xcode - 服务和客户端应用程序之间的 XPC 通信仅在从 xcode 启动时才有效

当我从 Xcode 启动目标时,XPC 通信工作正常。但是,当我通过双击图标手动启动服务和客户端应用程序时,会显示连接失效消息。为什么它们在 xcode 内部工作正常而不是从外部工作? .

0 投票
1 回答
1803 浏览

macos - 从 XPC 捆绑包中检索沙盒权利

通常可以通过codesign命令行调用查看应用程序是否存在沙盒权利。例如,调用这个

将导致此输出

其中 com.apple.security.app-sandbox 键表示应用程序在沙盒中运行。

在 Mavericks 上,一些 XPC 帮助应用程序在 Activity Monitor 中显示为在沙箱中运行,但在它们上调用 codesign 并没有显示任何内容。Safari 的 XPC 帮助应用程序之一的示例:-

只返回这个: -

我还尝试使用本文中描述的代码以编程方式检查捆绑包是否为沙盒,但同样返回未沙盒,即使活动监视器明确指出它是沙盒。

是否可以检查这样的 xpc 捆绑包,查看是否将在沙箱中执行并使用沙箱权利?

0 投票
1 回答
2031 浏览

macos - 应用沙盒、XPC 服务和不同的权利

我的 cocoa 应用程序设计是一个 .app(UI)和三个 XPC 服务。

主应用程序需要文件只读以显示powerbox并在 UI 中显示所选路径

  • com.apple.security.app-沙盒
  • com.apple.security.files.bookmarks.app-scope
  • com.apple.security.files.user-selected.read-only

两个 XPC 服务需要文件只读

  • com.apple.security.app-沙盒
  • com.apple.security.files.bookmarks.app-scope
  • com.apple.security.files.user-selected.read-only

一项 XPC 服务需要文件读写

  • com.apple.security.app-沙盒
  • com.apple.security.files.bookmarks.app-scope
  • com.apple.security.files.user-selected.read-write

由于用户交互的流程,主应用程序会打开一个 powerbox 对话框,以允许用户选择一个目录并将其显示在 UI 中。然后,主应用程序将其保存为安全范围的书签。书签数据根据需要通过 XPC 连接发送,每个单独的 XPC 进程解析书签以访问其自己的沙箱中的这些文件。

问题是,除非我将主应用程序(打开电源盒)设置为具有文件读写访问权限,否则即使其权利文件指定文件读写访问权限,需要写访问权限的 XPC 服务也不会获得它。控制台中记录了以下内容:

解决此问题的唯一方法是为打开 powerbox 文件的主应用程序提供读写权限,或者重新设计 UI 流程以便需要写入权限的进程显示 powerbox?最终目标是让每个进程拥有尽可能少的权限。理想的权利是在主 .app 进程中没有文件访问权限,两个 XPC 服务具有文件只读和一个 XPC 服务文件读写。谢谢!

编辑:

容器外的 Powerbox 和文件系统访问

与用户交互以扩展沙盒的 OS X 安全技术称为 Powerbox。Powerbox 没有 API。当您使用 NSOpenPanel 和 NSSavePanel 类时,您的应用程序会透明地使用 Powerbox。

0 投票
1 回答
1182 浏览

xcodebuild - xcodebuild 构建测试目标但无法运行 xctest

我在终端中运行命令

最后几行输出看起来像

在输出这些行之前,系统会提示我:“xcodebuild is trying to take control of a root process. Type your password to allow this”

我正在使用 Xcode 5.0.2。

0 投票
1 回答
8110 浏览

macos - 如何从 XPC 助手应用程序向主应用程序发送消息?

通过从主应用程序发送消息,我成功地创建了 XPC 服务并与 XPC 服务通信。但我想知道的是,是否可以启动从 XPC 服务到主应用程序的通信。Apple 文档说 XPC 是双向的。如果有人能用一个例子指出我正确的方向,将不胜感激。

请注意,

  • 我想从主应用程序启动 XPC。
  • 从主应用程序与 XPC 通信。
  • 当某些事件发生时,XPC 应该向主应用程序发送消息。

我在前两个中成功了,但在第三个中找不到任何资源。

谢谢。:)

0 投票
1 回答
442 浏览

ios - XPC 在蓝牙通信时崩溃

我正在开发一个应用程序,该应用程序有一个执行长任务的队列。有几次,在这个任务的最后(但不是必需的),我在 iOS 中遇到了以下错误:

但我不知道这个错误的原因。我唯一知道的是它来自一个segfault,而不是来自我的应用程序。

有人知道吗?