所以基本上我的Unity程序需要修改OSX上的hosts文件并且需要管理员权限。我得到以下例外:
UnauthorizedAccessException: Access to the path "/private/etc/hosts" is denied.
如何弹出" XXX想要进行更改:输入您的密码以允许更改。"窗口就像我在下面附上的截图一样?
我做了一些谷歌,但我找不到任何有用的东西。
任何建议都将不胜感激。
答案 0 :(得分:1)
做了一些更多的研究,我现在能想到的唯一解决方案是使用apple的Authorization service编写一个原生插件,然后从Unity程序中调用它。
但是,如果有更多的Unity方式,请不要犹豫,将其添加为答案。
EDIT_1:进度更新和我未来的自我记录。
OSX的原生插件后缀为.bundle,我用C ++编写(因为官方的例子是用c ++编写的),但它没有访问授权服务。而且我不知道如何为捆绑项目设置OC。现在,我正在尝试替代为OS X创建命令行工具应用程序,并将其作为Unity3d的外部进程运行。好消息是现在我可以用swift来写它!
EDIT_2:进度更新和我未来的自我记录。
在OC中编写的命令行工具确实有效。我可以使用Unity3d中的Process.start(name,argument)打开命令行工具。