我正在制作一个小型 mac 菜单应用程序,以在我拥有的主机文件之间快速切换,以便在我的网络环境之间切换。
try? FileManager.default.copyItem(at: URL(fileURLWithPath: "/etc/hosts__ENV_1"),
to: URL(fileURLWithPath: "/etc/hosts"))
以上返回nil
,我假设由于缺乏特权。
如何提供替换权限/etc/hosts
file?
为了修改文件,例如/etc/hosts
只能由 root 写入,您将需要使用特权帮助工具,使用以下命令安装它SMJobBless()
,并通过XPC与其进行通信。
Apple's EvenBetter授权样本示例代码演示了执行此操作的推荐方法,并提供了一个可供您使用的小型示例库。它是用 Objective-C 编写的,但是 Objective-C 代码集成到 Swift 项目中并不困难。 (有一天,我将发布我自己的 Swift 原生版本,但目前需要清理它,然后我才能为源代码感到自豪。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)