所以基本上我的Unity程序需要修改OSX上的hosts文件,并且需要管理员权限。我得到以下异常:Unity3d请求用户授权(OSX)
UnauthorizedAccessException: Access to the path "/private/etc/hosts" is denied.
如何弹出“XXX想要进行更改:输入您的密码以允许此操作”。窗口就像我附在下面的截图一样?
我做了一些Google,但找不到任何有用的东西。
任何建议,将不胜感激。
所以基本上我的Unity程序需要修改OSX上的hosts文件,并且需要管理员权限。我得到以下异常:Unity3d请求用户授权(OSX)
UnauthorizedAccessException: Access to the path "/private/etc/hosts" is denied.
如何弹出“XXX想要进行更改:输入您的密码以允许此操作”。窗口就像我附在下面的截图一样?
我做了一些Google,但找不到任何有用的东西。
任何建议,将不胜感激。
做了一些更多的研究,我现在能想到的唯一的解决办法是写使用苹果的Authorization service本地插件,并从统一程序调用它。
但是,如果有更多的Unity的方式做它,请不要犹豫,将其添加为答案。
EDIT_1:进度更新和笔记给我的未来自我。
OSX本地插件后缀为.bundle,我用C++编写(因为官方示例是在C++中),但它没有访问授权服务。我不知道如何为捆绑项目设置OC。现在我正在尝试为OS X创建一个命令行工具应用程序,并将其作为Unity3d的外部进程运行。好消息是我现在可以用swift写它!
。
编辑_2:进度更新和一个笔记给我未来的自我。
在OC中编写的命令行工具确实有效。我可以简单地在Unity3d中使用Process.start(name,argument)打开命令行工具。
代码是否失败?你有例外吗? – Programmer
@程序员是的,我得到了一个异常,我只是修改了这个问题。 – libra
如果您在Mac上将其作为管理员运行,会发生什么情况? – Programmer