Как изолировать инструмент командной строки?

я сделал простой инструмент Unix, который запускает главное приложение какао из оболочки.

Мне нужно, чтобы песочница, но когда я запускаю, он вылетает с ошибкой "Незаконное указание: 4 ", на console.app я вижу следующее сообщение об ошибке

Сбой при создании песочницы: Сбой инициализации объекта контейнера: Информационный объект контейнера NIL без описания ошибки для visdiff

Файл правильно подписан с помощью CodeSign.I '

прочитал постПриложение для Mac OS, песочница с инструментом командной строки? но это нет помощь

 Marius12 нояб. 2012 г., 20:31
Вы использовали аргумент --entitlements при кодировании?
 Joshua Nozzi12 нояб. 2012 г., 21:21
Возможно, нужно больше информации. Как ваш инструмент упакован с вашим приложением? Как вы выполняете инструмент "из ракушки " (код, пожалуйста). Что не сделалне поможет другой вопрос, который вы упомянули (где вы столкнулись с проблемами)?

Ответы на вопрос(4)

Пока @ Ник Мурс ответом отлично, тамЭто вариант сегодняXcode под Упаковкой - Создать раздел Info.plist в двоичном формате (CREATE_INFOPLIST_SECTION_IN_BINARY). Все это'необходимо установить значение Да.

Кажется, если вы подпишите исполняемый файл с com.apple.security.inherit, он может быть вызван только другим приложением, которое уже помещено в изолированную программную среду. Так что вы можете'больше не вызывать его из cmdline после запуска кода.

 user147513530 сент. 2016 г., 19:52
Да, эта проблема ударила меня, как только яЯ подписал исполняемые файлы помощника этим минимальным списком com.apple.security.app-sandbox + com.apple.security.inherit. Есть ли обходной путь? Или мне нужно добавитьреальный» права для каждого исполняемого файла помощника, как если бы это было родительское приложение, например com.apple.security.network.client? Я'Я беспокоюсь о правах на файловую систему, потому что моим помощникам может потребоваться достаточно широкий доступ, далеко за пределами домашней папки.

Консольное приложение запускается непосредственно из консоли или вызывается из основного изолированного приложения? Я получил аналогичную ошибку при попытке загрузить изолированную среду для некоторых двоичных файлов, и я просто смог заставить ее работать, используя только следующие права:

                                                                                                                                                                       
  com.apple.security.app-sandbox                                                                                                                                  
                                                                                                                                                                      
  com.apple.security.inherit                                                                                                                                      
                                                                                                                                                                      
 

Конечно, после этого вы можете вызывать двоичный файл только из родительского процесса, который уже находится в изолированной среде (вот почему я спросил, как называется ваш двоичный файл :)).

 dafi19 окт. 2012 г., 20:40
Нет, мой инструмент командной строки вызывается из оболочки Unix, он полностью независим от основного изолированного приложения
Решение Вопроса

У меня была именно эта проблема, и она ушла, когда я добавил встроенный Info.plist.

Попробуйте эти флажки лязг (если у вас естьinfo.plist в каталоге сборки):

-Xlinker -sectcreate -Xlinker __TEXT -Xlinker __info_plist -Xlinker info.plist

 Lizza28 сент. 2013 г., 01:10
Вот это да. Вы сохранили день. Я бы пожертвовал вам все мои SO баллы прямо сейчас, если бы мог. БЛАГОДАРЮ ВАС!!!
 Nick Moore10 мар. 2017 г., 11:33
@Swati Какая бы информация вам не понравилась - обычные значения Info.plist, как для приложения Mac OS. Такие как CFBundleVersion и так далее.
 Nick Moore29 сент. 2013 г., 09:42
Вы'добро пожаловать :)
 Swati07 мар. 2017 г., 10:53
какую информацию вы добавили во встроенный Info.plist? Я считаю, что этот список для файла Unix

Ваш ответ на вопрос