Песочница приложений Mac и forkpty ()

Я хочу изолировать приложение в песочнице, чтобы оно соответствовало требованию «песочницы» от 1 марта в Mac App Store. Мое приложение включает встроенный эмулятор терминала, который использует вызов forkpty () для запуска процессов в среде псевдотерминала. К сожалению, этот вызов не работает в песочнице с ошибкой «Операция запрещена», хотя вызов fork () работает нормально. Предположительно, для вызова forkpty () требуется доступ на чтение / запись к каталогу / dev / для создания псевдотерминала (согласно странице руководства). Я попытался добавить временное право на изолированную программную среду (com.apple.security. Contemporary-exception.files.absolute-path.read-write) с доступом для чтения / записи в /, и теперь я действительно могу читать и записывать файлы в любом месте на файловая система, но вызов forkpty () по-прежнему завершается с той же ошибкой. Кто-нибудь знает, как я могу заставить forkpty () работать в песочнице?

Мое приложение представляет собой программный текстовый редактор со встроенным эмулятором терминала и файловым браузером, поэтому ему, по сути, нужен доступ для всей файловой системы. Помимо проблемы forkpty () , это временное право, похоже, делает то, что мне нужно. Но примет ли Apple приложение с таким неопределенным правом на временное исключение?

Заранее спасибо, ребята.Я очень надеюсь, что смогу запустить эту песочницу, поэтому продолжаю распространять свое приложение через App Store.

8
задан Perception 4 March 2013 в 14:42
поделиться