Как сделать так, чтобы песочница приложений не блокировала использование плагина после кодирования? - PullRequest
1 голос
/ 27 мая 2020

Я изо всех сил пытаюсь кодировать свое приложение Unity, чтобы отправить sh его в магазин приложений Ma c. Я выполнил рекомендованный процесс Unity, но после команды codeign возникли некоторые проблемы. Мне удалось исправить некоторые из них, добавив новые ключи в свой файл прав, но я все еще застрял из-за механизма песочницы приложений.

В моем приложении я использую внешний плагин FFmpeg для управления кодированием видео. После кодовой подписи с обязательным правом доступа к песочнице приложения, установленным на true, плагин перестал работать, и у меня нет журнала, объясняющего почему.

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

Я новичок в кодовой подписи, и вот мой процесс и файл прав:

  1. chmod -R a+xr ./MY_APP.app
  2. codesign --force --sign '3rd Party Mac Developer Application: My Company (id)' --entitlements ./FFmpeg.entitlements ./MY_APP.app/Contents/Resources/Data/StreamingAssets/FFmpegOut/macOS/ffmpeg
  3. codesign -f --deep -s '3rd Party Mac Developer Application: My Company (id)' --entitlements ./MY_APP.entitlements ./MY_APP.app
  4. Подтвердите кодовое обозначение и сборку продукта - оба успешно

Основной файл полномочий для приложения (MY_APP.entitlements):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
            <key>com.apple.security.app-sandbox</key>
            <true/>
            <key>com.apple.security.files.user-selected.read-write</key>
            <true/>
            <key>com.apple.security.network.client</key>
            <true/>
            <key>com.apple.security.files.user-selected.executable</key>
            <true/>
            <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
            <true/>
            <key>com.apple.security.cs.disable-library-validation</key>
            <true/>
            <key>com.apple.security.cs.allow-dyld-environment-variables</key>
            <true/>
            <key>com.apple.security.get-task-allow</key>
            <true/>
    </dict>
</plist>

Вот второй файл полномочий (FFmpeg.entiltlement) для плагина с наследованием:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
            <key>com.apple.security.app-sandbox</key>
            <true/>
            <key>com.apple.security.inherit</key>
            <true/>
    </dict>
</plist>

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

Я с радостью возьму любую идею или решение, Спасибо за вашу помощь,

С уважением, Алексис

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...