Принудительная команда `open`, чтобы открыть неподписанное приложение?

21

У меня есть настройки безопасности, позволяющие загружать приложения из «Mac App Store и определенных разработчиков». Когда я пытаюсь открыть неподписанное приложение:

open xyz.app

Я вижу следующее:

Приложение не может быть открыто

Обычно я щелкаю правой кнопкой мыши по приложению и нажимаю «Открыть». Это вызывает аналогичное диалоговое окно, но оно включает кнопку типа «все равно открыть»:

Приложение не может быть открыто, с кнопкой открытия

Есть ли способ сделать это только с помощью openкоманды - что-то вроде:

open --even-if-unsigned xyz.app
bonh
источник

Ответы:

33
  1. Создайте и добавьте ярлык гейткипера в приложение. («Одобрено» - произвольная строка.)

    spctl --add --label "Approved" /path/to/xyz.app
  2. Одобрить все приложения с меткой.

    spctl --enable --label "Approved"

    Это нужно сделать только один раз, и добавление одноименной метки в приложения в будущем автоматически разрешит им доступ.

  3. Откройте приложение как обычно.

    open xyz.app

Для получения дополнительной информации о spctl (безопасность политики системы SecAssessment) см. Справочную страницу.

Grg
источник
3
Ах, новое дополнение к списку вещей, которые я раньше только знал, как делать с графическим интерфейсом, а теперь могу делать из командной строки! Благодарность!
LSpice
19

Вы можете удалить карантин из приложения:

xattr -r -d com.apple.quarantine /path/to/xyz.app

Возможно, вы захотите / должны использовать sudoэту команду в зависимости от разрешений.

Тогда привратник вообще не участвует. Конечно, это также означает, что подпись не проверена, что устраняет важную функцию безопасности.

Кен Томасес
источник
Мне тоже нравится этот ответ. Жаль, что я могу выбрать только один!
Бон
Это работало для моей ручной установки OpenJDK. Благодарность!
fachexot