用Mac应用程序的swift获得管理权限
我正在编写一个需要经常具有根特权的命令的软件. 现在,我是通过向用户询问其密码,保存该密码,然后将该密码作为参数以及with administrator privileges. 这显然对用户来说确实是不安全的,因为有人可以访问其密码. 我一直在寻找一个星期的大部分时间,找不到解决方案. 在"> smjobbless 似乎允许您以更高的特权安装应用程序. 我遵循了应用程序的示例,我从他们的smjobblessutil脚本中遇到了一个错误. 这是错误: SMJobBlessUtil.py: tool designated requirement (identifier "com.domain.AppName.SampleService" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: firstName lastName (XXXXXXXXXX)" and
4 2023-12-18
编程技术问答社区
当用户删除.app时,卸载其安装的项目,包括SMJobBless帮助器
简短版本:删除应用程序时,是否可以删除应用程序设置的助手工具(SMJobBless()等)?如果是这样,如何? 长版本: 不幸的是,我们正在开发的Mac应用程序需要管理特权才能执行偶尔操作,并且它也需要一个背景任务才能实时使用其他应用程序的插件,即使应用程序本身不运行(此应用程序)无私人).该应用程序将与开发人员ID证书签名,并仅在App Store之外分发. 我们希望该应用尽可能地成为"好公民",也可以在卸载上. 对于背景任务,我们使用的是登录项目,使用对于偶尔需要管理权的操作,我们有一个使用SMJobBless()安装的特权辅助工具,并实现了命名XPC服务,因此,在从该任务中收到消息时,该任务在要求时按需悬而未决.主应用. This is what Apple recommends and describes in its Even Better Authorization Sample. helper可执行文件可通过SMJobBless()复制到/Li
18 2023-06-20
编程技术问答社区
SMJobBless出现错误CFErrorDomainLaunchd Code=8
我正在尝试通过SMJOBBLESS安装辅助工具,并且我会遇到以下错误, 错误域= cferrordomainlaunchd代码= 8"操作无法完成.(cferrordomainlaunchd错误8.) 我验证了代码符号,应用程序和辅助工具的PLIST,在启动服务中复制了该工具,并链接了PLIST. 有人可以帮我吗? 谢谢, 解决方案 验证以下内容: 1.代码 - (BOOL)blessHelperWithLabel:(NSString *)label error:(NSError **)error { BOOL result = NO; AuthorizationItem authItem = { kSMRightBlessPrivilegedHelper, 0, NULL, 0 }; AuthorizationRights authRights = {
22 2023-03-16
编程技术问答社区
OS X-真正的'随需应变'特权帮助工具
我的应用程序需要将文件写入文件系统上的受限位置. 为此,我使用了一个以 root 身份运行的帮助工具. 一切正常,遵循 this example,我的帮助工具已正确安装并运行.我使用此解决方案能够“唤醒"辅助工具,否则在初始加载后它不会启动超过一次. 帮助工具正在等待来自主应用程序的消息,并正确执行它们.我还有一条消息要求该工具关闭,它也可以正常工作. 问题是 launchd 每次退出时都会重新启动该工具,无论我在 launchd.plist 文件中指定什么键. 我不希望帮助工具永远运行,等待消息,而是仅按需启动. 问题:辅助工具每次结束都重启正常吗?如果没有,如何让它死掉并按需重启? 这是launchd.plist的内容:
98 2022-08-18
编程技术问答社区
SMJobBless错误
我正在尝试通过 SMJobBless 安装帮助工具,但出现以下错误, Error Domain=CFErrorDomainLaunchd Code=8 "操作无法完成.(CFErrorDomainLaunchd 错误 8.) 我验证了代码符号、应用程序的 plist 和帮助工具,在 launchServices 中复制了该工具并链接了 plist. 谁能帮帮我? 谢谢, 解决方案 验证以下内容: 1.代码 - (BOOL)blessHelperWithLabel:(NSString *)label error:(NSError **)error { BOOL result = NO; AuthorizationItem authItem = { kSMRightBlessPrivilegedHelper, 0, NULL, 0 }; Authorization
5950 2022-07-19
编程技术问答社区