2017-02-24 119 views
0

所以基本上我的Unity程序需要修改OSX上的hosts文件,并且需要管理员权限。我得到以下异常:Unity3d请求用户授权(OSX)

UnauthorizedAccessException: Access to the path "/private/etc/hosts" is denied. 

如何弹出“XXX想要进行更改:输入您的密码以允许此操作”。窗口就像我附在下面的截图一样?

我做了一些Google,但找不到任何有用的东西。

任何建议,将不胜感激。

enter image description here

+0

代码是否失败?你有例外吗? – Programmer

+0

@程序员是的,我得到了一个异常,我只是修改了这个问题。 – libra

+0

如果您在Mac上将其作为管理员运行,会发生什么情况? – Programmer

回答

1

做了一些更多的研究,我现在能想到的唯一的解决办法是写使用苹果的Authorization service本地插件,并从统一程序调用它。

但是,如果有更多的Unity的方式做它,请不要犹豫,将其添加为答案。

EDIT_1:进度更新和笔记给我的未来自我。

OSX本地插件后缀为.bundle,我用C++编写(因为官方示例是在C++中),但它没有访问授权服务。我不知道如何为捆绑项目设置OC。现在我正在尝试为OS X创建一个命令行工具应用程序,并将其作为Unity3d的外部进程运行。好消息是我现在可以用swift写它!

编辑_2:进度更新和一个笔记给我未来的自我。

在OC中编写的命令行工具确实有效。我可以简单地在Unity3d中使用Process.start(name,argument)打开命令行工具。