SwiftyXPC 是 Apple 的 XPC 进程间通信库的包装器,它提供了一个易于使用、符合 Swift 习惯的接口。
是的,没错,但是它基于协议和代理的接口更适合 Objective-C 而非 Swift。从 Swift 中使用 NSXPCConnection
总是感觉有些笨拙,而且随着 Swift 并发的出现,情况变得更糟,因为一切都必须包含在 withCheckedThrowingContinuation
代码块中。 NSXPCConnection
在某些重要方面也往往落后于 libxpc
,尤其是在通过审计令牌验证远程进程的代码签名方面。
相比之下,SwiftyXPC
try
和 await
来调用你的辅助代码,无需任何闭包。Codable
协议构建,因此你可以使用任何你想要的类型作为参数和返回值,只要这两种类型都符合 Codable
,它就能正常工作™。如果错误类型是 Codable
并且你使用共享的 XPCErrorRegistry
对象注册了它们的域,错误类型也会被保留。实际上,事实证明情况并非如此! 使用 Xcode 13.2,Swift 并发现在可以在 macOS 10.15 “Catalina” 上一直运行,因此,这个库也可以。
MIT。