Gatekeeper - это служба macOS которая проверяет программы при первом запуске. Если программа подписана известным разработчиком и/или прошла нотаризацию Apple, она запустится. Если нет - вы увидите окно «Программа не может быть открыта, так как Apple не может проверить разработчика».
Что проверяет Gatekeeper
При первом запуске .app-файла:
- Подпись Developer ID - есть ли у программы валидная цифровая подпись разработчика, зарегистрированного в Apple Developer Program
- Notarization - прошла ли программа автоматическую проверку Apple на вредоносный код (с macOS Catalina 2019)
- Карантин - флаг
com.apple.quarantineкоторый ставится на любые скачанные из интернета файлы
Что бывает за результатами
- ✅ Подписана + нотаризована → запускается без вопросов
- ⚠ Подписана, без нотаризации → требует разрешения на запуск
- ❌ Без подписи → блокировка с предупреждением о «неизвестном разработчике»
- ❌ С обнаруженным вредоносным кодом → полная блокировка с предупреждением
Как разрешить запуск программы
Вариант 1 - через всплывающее окно:
- Скачайте и попытайтесь открыть программу - получите ошибку
- Откройте Системные настройки → Конфиденциальность и безопасность
- Прокрутите вниз - увидите запись о заблокированной программе
- Нажмите «Открыть в любом случае» / «Open Anyway»
- Введите пароль администратора
Вариант 2 - через правый клик:
- В Finder кликните по .app правой кнопкой (или Ctrl+клик)
- В меню выберите «Открыть»
- Появится диалог с кнопкой «Открыть» (которой нет при обычном запуске)
- Нажмите её
Этот способ работает в большинстве случаев, но не для всех программ - например, при включённой настройке «Только App Store и проверенные разработчики».
Что если совсем не открывается
Возможные причины:
- Программа повреждена при скачивании - удалите и скачайте заново
- В программе обнаружен реальный вредоносный код - не запускайте
- Подпись программы протухла или отозвана Apple - попросите у автора новую сборку
Глобальное отключение Gatekeeper
Не рекомендуется, но можно:
sudo spctl --master-disable
После этого в настройках появится опция «Разрешить запуск из любого источника». Включить обратно:
sudo spctl --master-enable
Атрибут карантина
Любой файл, скачанный браузером или мессенджером, получает невидимый атрибут com.apple.quarantine. Его можно убрать командой:
xattr -d com.apple.quarantine /путь/к/файлу.app
После этого Gatekeeper не будет проверять программу. Но используйте это только для файлов, в которых уверены.
Связь с другими защитами
- SIP - защищает от изменения системы
- Notarization - дополнительная проверка на серверах Apple
- App Sandbox - изолирует программы от системы
- XProtect - встроенный антивирус Apple
Gatekeeper - первый «фильтр» на пути нового приложения, остальные работают уже после.