我正在尝试从〜/ Library / PreferencePanes文件夹中删除文件,但这不能通过普通权限完成。通常,如果您需要删除〜/ Library文件夹中的任何文件,系统将询问您的用户名和密码。
我这样做的当前方式是
[[NSFileManager defaultManager] removeItemAtPath:filePath error:&error]
但这会继续返回错误([error localizedDescription]
):
theAppName.prefPane couldn’t be removed because you don’t have permission to access it.
为了获得删除文件所需的这些提升权限,我需要使用哪些逻辑和代码?
谢谢!
答案 0 :(得分:5)
你应该通过Authorization Services Programming Guide。您需要使用AuthorizationExecuteWithPrivileges
。
答案 1 :(得分:1)
我能找到并且对我有用的唯一方法是在Xcode中创建一个命令行工具。使用SMJOBBLESS将该工具安装为Launchd Job,然后使用XPC连接与之通信。按照下面的EvenBetterAuthorization示例来了解上述所有方法的工作原理。