В моем приложении MacOS есть дочерний процесс. Я запускаю его по NSTask.
В локальной отладке все работает хорошо. Но когда я загружал его в AppStore, Apple сказала, что моему дочернему двоичному файлу процесса нужна песочница.
Хорошо, я установил песочницу в свой двоичный файл, но возникла новая проблема. Процесс не может быть запущен с помощью NSTask, и код ошибки равен 4, что означает EXC_BAD_INSTRUCTION.
Все, что я обнаружил, - это то, что мой двоичный файл должен унаследовать его изолированную программную среду от родительского. Я установил эти права:
com.apple.security.inherit : true
com.apple.security.app-sandbox : true
Как бы то ни было, проблема все еще существует.
Содержимое моего приложения выглядит следующим образом:
Contents
- MacOS
- mainExecutable
- Frameworks
- theFramework
- Resources
- theToolBinary
Их отношение:
theToolBinary нужно, чтобы фреймворк работал. theToolBinary построен на CommandLineTool и подписан.
Итак, «com.apple.security.inherit» больше не работает? Или что не так с моим проектом?