2012-02-19 82 views
8

我正在尋找沙盒應用,以符合Mac App Store的3月1日沙盒要求。我的應用程序包含一個內置的終端仿真程序,它利用forkpty()調用在僞tty環境中啓動進程。不幸的是,這個調用在沙箱下出現錯誤「操作不允許」,但fork()調用工作正常。假設forkpty()調用需要讀/寫/ dev /目錄來創建一個僞tty(根據手冊頁)。我已經嘗試添加一個臨時沙盒權限(com.apple.security.temporary-exception.files.absolute-path.read-write),並對/進行讀/寫訪問,現在我確實可以讀取和寫入文件系統,但forkpty()調用仍會失敗並出現相同的錯誤。有誰知道我可能會如何在沙箱下工作forkpty()Mac應用沙盒和forkpty()

我的應用程序是一個帶有內置終端仿真器和文件瀏覽器的編程文本編輯器,所以它基本上需要訪問整個文件系統。除了forkpty()問題之外,這種臨時權利似乎正在做我所需要的。但是,蘋果是否會接受一個具有這種鬆散定義的暫時例外權利的應用程序?

在此先感謝你們。我真的很希望我能夠使這個沙盒正常運行,所以我繼續通過App Store分發我的應用程序。

+0

嗯,如果你正在啓動一個shell,這個shell應該有完整的權限來避免惱人的用戶,這與沙盒的想法相矛盾。 – jilles 2012-02-21 21:43:41

回答

2

在沙盒應用程序中實現有用的終端仿真程序是不可能的 - 即使在爲PTY設備添加權利後,shell也會與應用程序在同一個沙箱中結束,從而阻止它做得太多。