如何在进行权限提升的 macOS 应用程序中更新辅助工具?

Alf*_*uro 6 macos cocoa objective-c swift

我正在使用权限提升和现代方法在 macOS 应用程序中实现这一点。在测试时,我注意到如果您部署新版本的应用程序,特权助手不会自动更新。Library/PrivilegedHelperTools/ 中的现有副本将继续使用。在更好的授权示例 Apple 示例项目中,它确认了这一点:

注意事项

使用此技术的实际应用程序必须处理更新其特权帮助工具的问题。由于 SMJobBless 的限制(特别是 SMJobBless 请求授权 /before/ 进行版本检查),这比它应该的更难。处理更新的最佳方法是:

  1. 实现“获取版本”操作,您的应用可以使用该操作来确定已安装工具的版本

  2. 如果返回的版本太旧,让应用程序更新工具

该示例没有直接显示这一点,但确实显示了每个步骤。对于第 1 步,查看“获取版本”按钮执行的代码路径。执行第 2 步只需调用 SMJobBless,它将代表您进行更新。

有人有关于如何使用 jobBless 实际更新辅助工具的示例吗?谢谢你的帮助。