我有几个关于守护进程的问题.事实上,就连macos开发者中心的信息资源也很有限.

我想开发一个应用程序守护程序,在系统启动后运行,无需登录.

a) 守护进程;它是一个简单的控制台应用程序,结合了plist吗?因为几乎没有关于Xcode守护进程开发的教程.如果有代码示例参考,你能在这里分享吗?

b) 可以从应用store 下载守护程序吗?因为肯定有一款软件我可以通过App Store提供给每个人.是否像其他应用store 应用一样自动安装?如果有人有经验并能分享,我将不胜感激.

c) 我正在开发一个与将屏幕镜像到Android手机相关的API.你认为守护进程可以完全访问WiFi/BLE和屏幕捕获API吗?

我很高兴听到你的建议.

推荐答案

我以前做过一个启动守护程序,目的是用SMBless来创建一个特权助手工具.我可以分享我的一些经验.

A

守护进程;它是一个简单的控制台应用程序,结合了plist吗?因为几乎没有关于xcode守护进程开发的教程.如果有代码示例参考,你能在这里分享吗?

以下是我发现有用的一些资源:

  1. 伍迪Cocoa: implement a privileged Helper岁了.本文介绍了创建启动守护程序并将其作为特权助手工具启动的低级别、分步过程.如果您不需要特权执行,那么步骤大致相同,但没有SMJobBless部分.
  2. SwiftAuthorizationSample显示了 case SecureXPC(基于Codable的快速XPC通信框架)和Blessed(SMJobBless和AuthorizationServices框架的快速现代接口框架).它处理了#1的许多复杂性.
  3. 苹果的后台程序 and Services Programming Guide

B

可以从应用store 下载守护程序吗?因为肯定有一款软件我可以通过app store提供给每个人.是否像其他应用store 应用一样自动安装?如果有人有经验并能分享,我将不胜感激.

不会.你会将它们作为应用程序的一部分分发,并在需要时让应用程序安装它们.

我正在开发一个与将屏幕镜像到android手机相关的api.你认为守护进程可以完全访问WiFi/BLE和屏幕捕获API吗?

WiFi当然可以,但我不确定屏幕捕获API.launch Agent和守护进程(IIRC)之间的区别之一是,只有launch Agent可以连接到Windows服务器,我认为这对于屏幕捕获API是必要的.

Technical Note TN2083 – 后台程序 and 代理人开始:

后台程序

守护进程是作为整个系统的一部分在后台运行的程序(也就是说,它不与特定用户绑定).守护进程不能显示任何GUI;更具体地说,不允许连接到Windows服务器.web服务器是守护进程的完美例子.

...

代理人

代理是代表特定用户在后台运行的进程.代理很有用,因为它们可以做守护进程无法做的事情,比如可靠地访问用户的主目录或连接到Windows服务器.日历监控程序是代理的一个很好的例子,因为:

Swift相关问答推荐

为什么我的引用类型对象在初始化后有3个强引用?

如何使用快速宏用来自函数的关联值来初始化枚举?

在解码字符串时需要帮助.

按Esc键时执行操作(工作表)

如何让ScrollView缩小到合适的大小,并在没有黑客攻击的情况下占用最小空间

查找数组中 ** 元素 ** 的属性的最小值和最大值

找出touch 点的屏幕亮度

为什么这段Swift读写锁代码会导致死锁?

标有@MainActor 的函数中的异步调用是否也在主线程上运行?

无法使用 RealityKit 播放 USDZ 动画

在 Vapor 4 中使用协议的通用流利查询

SwiftUI 视图的默认成员初始化器 VS 自定义初始化器

如何让动画变慢 SwiftUI

.onTapGesture 不适用于 Stepper,仅适用于其文本

Alamofire 会自动存储 cookie 吗?

如何从 Button 获取标签名称?

在 Swift 框架中加载资源(例如故事板)

如何在 SwiftUI 中以编程方式滚动列表?

判断用户是否登录到 iCloud?Swift /iOS

swift中相同的数据类型多变量声明