Я уже решил это, но так как я не нашел статью, предоставляющую явную помощь, я решил написать ее здесь. Чтобы доставить сценарий, который легко запускается нетехническим пользователем, вы можете кодировать подпись исполняемого сценария и упаковать его в DMG, который вы также кодируете. Для этого есть несколько шагов, поэтому позвольте мне распаковать его для вас.
- Создание идентификатора разработчика Apple
- Это самый простой шаг (costs стоит денег). Просто следуйте инструкциям здесь: https://developer.apple.com/programs/enroll/
- Создание сертификата ID разработчика
- Примечание: это может сделать только командный агент.
- Войдите в свою учетную запись разработчика Apple
- Выберите macOS из выпадающего меню в верхнем левом углу
- Выбор сертификатов, идентификаторов и профилей
- В разделе Сертификаты выберите Производство
- Нажмите кнопку «+» справа
- В разделе «Производство» выберите «ID разработчика» и нажмите кнопку «Продолжить»
- Выберите «Application ID Application» и нажмите кнопку «Продолжить»
- Следуйте инструкциям для создания нового CSR и нажмите Продолжить
- Загрузите CSR и затем загрузите сертификат.
- Дважды щелкните сертификат, чтобы импортировать его в цепочку для ключей. Запустится приложение Keychain Access.
- Выберите импортированный сертификат для просмотра идентификатора разработчика. Он будет иметь форму «Application ID Application: My Entity (blahblah)».
- Запустите сценарий, чтобы сделать его исполняемым, подпишите его, объедините в DMG и подпишите DMG * 1039 *
`` `
#!/usr/bin/env bash
# exit the script right away if there are any errors
set -e
# make the distributed script executable
chmod a+x path/to/code/myshell.command # you MUST name this *.command for the signature to persist
# sign the script; replace 'My Entity (blahblah)' with the actual value you saw in your Keychain Access app.
codesign -s "Developer ID Application: My Entity (blahblah)" path/to/code/myshell.command
# verify that the script has been signed
spctl -a -t open --context context:primary-signature -v path/to/code/myshell.command
# create the Disk Image with the contents of the path/to/code directory
hdiutil create -ov -srcfolder path/to/code path/to/disk-image-file.dmg
# sign the disk image
codesign -s "Developer ID Application: My Entity (blahblah)" path/to/disk-image-file.dmg
# verify that the disk image has been signed
spctl -a -t open --context context:primary-signature -v path/to/disk-image-file.dmg
`` `
- Создайте вышеуказанный скрипт и запустите его из пути терминала bash / в / build-script.sh
Теперь, когда клиент открывает образ диска, он может просто дважды щелкнуть файл * .command, и он запустится на их компьютере. Он спросит их, уверены ли они, но это лучше, чем использование по умолчанию.