Команда "xattr" не работает внутри приложения "песочница"

Мы долгое время работали над IDE, и она имеет режим com.apple.security.app-sandbox. Пользователь может загрузить необходимый SDK из Интернета (из коробки) и использовать его в нашей IDE для разработки. До использования этих файлов SDK мы много раз замечали, что файлы имеют атрибуты карантина (com.apple.quarantine). Такие файлы было запрещено использовать в приложении-песочнице в El Capitan из-за более жестких политик ограничения. Чтобы преодолеть такой блокиратор, мы решили запустить скрипт bash, прежде чем использовать эти файлы SDK внутри нашей IDE:

#!/bin/bash
SDKPATH=$1
xattr -d -r com.apple.quarantine "$1"

Для беспроблемной работы мы добавили следующее право в наше приложение:

<key>com.apple.security.scripting-targets</key>
<dict>
   <key>com.apple.Terminal</key>
   <array/>
</dict>

Из установленного приложения это никогда не работало в El Cap. Наконец, мы обнаружили, что использование этого конкретного права может только заставить скрипт bash работать должным образом:

<key>com.apple.security.temporary-exception.apple-events</key>
<array>
    <key>com.apple.terminal</key>
</array>

К сожалению, команды проверки Apple были довольно ограничены в предоставлении разрешения на использование вышеупомянутых прав.

Есть ли какой-либо другой известный способ или использование прав, которое может заставить нас выполнить команду 'xattr' и удалить расширенные атрибуты из нашего приложения?

0 ответов

Другие вопросы по тегам