2017-02-24 156 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)打開命令行工具。