«Программа повреждена и не может быть открыта» на Mac: что это значит

Mac пишет, что программа повреждена, хотя файл цел — дело в непроверенной подписи Apple. Два рабочих способа открыть её и два совета из выдачи, которые мертвы.

Mac пишет, что программа повреждена, хотя файл цел — дело в непроверенной подписи Apple. Два рабочих способа открыть её и два совета из выдачи, которые мертвы.

Слово «повреждено» в этом окне обманывает. Файл почти наверняка цел: при скачивании ничего не сломалось. Mac не может подтвердить, кто выпустил программу. Точнее — «не проверена», а не «повреждена».

В окне свежей macOS написано так: «Приложение „…“ повреждено, и его не удается открыть. Переместите приложение в Корзину». В поиск ту же беду вбивают иначе — «приложение повреждено и не может быть открыто» или «программа повреждена».

Дальше — два рабочих способа открыть программу, два мёртвых совета из выдачи и один честный повод не открывать вовсе.

Мак ищет подпись автора и не находит её

У программ для Mac бывает цифровая подпись Apple. Она подтверждает, что автор известен компании, а файл не подменили после сборки.

Подписи нет или она не прошла проверку — в дело вступает Gatekeeper. Это встроенная защита macOS: запуск блокируется, на экране предупреждение.

Apple описывает это прямо: система «не может определить, было ли приложение изменено или повреждено после выпуска». Слово «повреждено» здесь означает «не смогли проверить». Сломанный файл тут ни при чём.

Подписанную программу Apple может ещё и просканировать на вредоносный код — отдельным шагом, уже после подписи. Результат этой проверки система смотрит при первом открытии.

Это не перестраховка на пустом месте. Та же проверка ловит поддельные копии известных программ, в которые встроили майнер или шпионский модуль. Подписанную программу так подменить не получится — подмена сломает саму подпись.

Иногда система предупреждает вежливо: неизвестный разработчик и кнопка в настройках. Иногда резче — пишет про повреждение и предлагает Корзину. Разница только в словах: файл в обоих случаях тот же, что вы скачали.

Настоящую битую закачку видно иначе. Образ диска не открывается вовсе, система говорит про нераспознанный формат. Если разработчик опубликовал контрольную сумму, сверьте её командой shasum -a 256 и путём к файлу. Совпала — файл доехал целым.

Отдельно работает карантин — метка, которую Mac ставит на любой файл из интернета: письмо, архив, установщик программы. Она включает более строгую проверку при первом запуске. Без неё Gatekeeper вообще не стал бы задавать вопросов.

Формулировки на экране отличаются по версиям macOS, но по смыслу их две:

Что видите Что делать
Предупреждение про неустановленного или неизвестного разработчика, с возможностью продолжить Настройки → «Все равно открыть»
Программа «повреждена» и её предлагают сразу переместить в Корзину Терминал: снять карантин

Первый способ: кнопка «Все равно открыть»

Откройте меню Apple, затем «Системные настройки». Перейдите в «Конфиденциальность и безопасность». Долистайте до раздела «Безопасность»: там будет строка про заблокированную программу.

Нажмите «Открыть», затем — «Все равно открыть».

Тут есть тонкость, из-за которой люди теряют вечер. В справке Apple она сформулирована так: «Эта кнопка доступна в течение примерно часа после попытки открыть приложение».

Час идёт от попытки запуска. Ждать, пока кнопка появится, не нужно — она уже там.

Строки в настройках нет или час прошёл — просто запустите программу ещё раз. Система снова упрётся, строка вернётся, и час начнётся заново.

Дальше система попросит пароль от учётной записи. Введите его, нажмите «ОК» — и программа откроется. Со следующего раза Mac запомнит решение и будет запускать её как обычную.

Команда xattr снимает карантин

Кнопка из настроек помогает не всегда. Если Mac продолжает называть программу повреждённой, дело в другом уровне защиты. Путь тогда один — Терминал.

Команда xattr убирает метку «файл из интернета» с этой копии программы. Остального Мака она не трогает.

Шаги:

  1. Откройте Терминал: Finder → Программы → Утилиты → Терминал.
  2. Наберите xattr -dr com.apple.quarantine и пробел, но Enter пока не нажимайте.
  3. Перетащите значок программы из Finder прямо в окно Терминала — путь допишется сам.
  4. Нажмите Enter и, если попросит, введите пароль от учётной записи.

Готово: программа запускается заново, на этот раз без вопросов.

Почему совет «щёлкнуть с Control → Открыть» больше не помогает

Первая подсказка в любой выдаче звучит так. Щёлкните по значку с зажатым Control, выберите «Открыть» — и система пустит. Много лет это работало.

С macOS 15 Sequoia — нет. Apple объявила разработчикам в августе 2024, что контекстное меню больше не отменяет запрет Gatekeeper.

Видно это и по самой справке Apple. На страницах для macOS 13 и 14 шаг с Control на месте. На страницах для macOS 15 и macOS 26 его нет вовсе — остались только «Системные настройки».

Рядом в выдаче живёт второй мёртвый совет: sudo spctl --master-disable. Раньше строка снимала проверку целиком.

Теперь в описании самой команды сказано: с версии 15.0 менять общее состояние проверки больше нельзя. Всё, что она делает, — показывает в настройках пункт «Любых источников», и выбирать его придётся руками. Программу без настоящей подписи разработчика это не откроет.

Рабочих путей осталось два, и оба описаны выше.

Когда дело не в подписи

Бывает, что оба способа отработали, а программа всё равно не стартует. Тогда причина другая:

  • Сборка требует систему новее вашей: Mac скажет про несовместимость или просто закроет окно.
  • Программа собрана только под Intel, а у вас Apple Silicon. Или наоборот, и Rosetta не установлена.
  • Образ не монтируется, размер не сходится с тем, что обещает сайт. Закачка битая — качайте заново.
  • Программу тащили из архива или с сетевого диска, и часть файлов внутри пакета не доехала.

Проверять стоит в этом порядке. Версия системы отсеивается за полминуты, закачка — за минуту.

Как отличить настоящий сайт разработчика от копии

Оба способа выше по-настоящему снимают защиту с этой копии программы. Дальше всё держится на источнике.

«Скачайте с сайта разработчика» — совет бесполезный, пока не понятно, какой из сайтов настоящий. Вот что проверяют за минуту:

  • Адрес из письма разработчика надёжнее первой строки в поиске. Годится и ссылка из справки самой программы или из её профиля в соцсети.
  • Первую строку в выдаче часто покупают. Копии платят за рекламу охотнее оригиналов, так что листайте до обычных результатов.
  • Лишняя буква в домене, дефис, .app вместо .com — обычный приём подмены. Сравните адрес посимвольно.
  • У настоящего сайта есть история обновлений, страница с контактами, переписка в открытом доступе. У свежей копии их нет.
  • Оригинал раздаёт тот же формат файла, что и всегда. Внезапный установщик вместо привычного образа диска — повод остановиться.

Особенно осторожно — со взломанными версиями платных программ и файлами из торрентов. Именно туда чаще всего встраивают подмену, рассчитывая, что человек сам обойдёт защиту.

У моей программы вы увидите то же самое

Здесь честно признаюсь: у WorkClient нет подписи Apple. Каждый, кто скачивает программу с сайта, видит то же окно — «неизвестный разработчик» или «повреждена», смотря по версии macOS.

Причина простая: у сборки пока нет сертификата Apple Developer ID. Получить его — дело времени.

Совсем без подписи на Apple Silicon программа не запустилась бы вообще. Начиная с macOS 11 система там требует подписи от любой программы, и никакие настройки этого не отменяют. Годится и самодельная, без имени разработчика.

У сборки такая есть, и она постоянная. Побочная польза: выданный однажды «Универсальный доступ» перестал слетать после каждого обновления.

Рабочее окно WorkClient с таймером и списком проектов после запуска
Так выглядит программа, если Mac всё же разрешили её открыть. Демонстрационные данные.

Разрешение даётся один раз: при следующих запусках Mac уже не спрашивает. Дальше он может спросить ещё и про «Универсальный доступ» — это другой разговор, он разобран в отдельной статье про это разрешение.

Доверие к источнику решает больше, чем кнопка в настройках

В итоге всё сводится к одному вопросу. Вы доверяете тому, откуда это скачано?

Кнопка и команда нажимаются одинаково легко — что для настоящей программы, что для подделки. Разница в том, что вы успели узнать об источнике до того, как нажали.

Знаете источник — открывайте не раздумывая: минута в настройках или одна строка в Терминале того стоят. Не знаете — потратьте пять минут на поиск официального сайта. Дешевле, чем потом разбираться, что вообще установилось на компьютер.

Вопросы и ответы

Что значит окно «программа повреждена и не может быть открыта» на Mac?

Это сообщение Gatekeeper — встроенной защиты macOS, а не диагноз файла. Система не смогла подтвердить подпись Apple у скачанной программы и на всякий случай блокирует запуск. Сам файл почти всегда цел — просто у Apple нет подтверждения его автора. Открыть программу можно через настройки безопасности или Терминал, если источник вызывает доверие.

Как открыть программу, если Mac пишет «от неустановленного разработчика»?

Откройте меню Apple → «Системные настройки» → «Конфиденциальность и безопасность», долистайте до раздела «Безопасность» и нажмите «Открыть», затем «Все равно открыть». Нажать надо в течение часа после попытки запуска: столько живёт эта строка. Час прошёл — запустите программу ещё раз, и строка вернётся.

Как вообще открыть программу, скачанную из интернета, на Mac?

Любой файл из интернета Mac помечает карантином и при первом запуске проверяет строже обычного. Если у программы есть подпись Apple, обычно хватает кнопки «Все равно открыть» в настройках безопасности. Если подписи нет вовсе и система называет программу повреждённой, карантин снимают командой в Терминале — это работает всегда.

Почему не срабатывает правый клик по программе и «Открыть»?

Этот обход Apple убрала в macOS 15 Sequoia. Разработчикам она объявила об этом в августе 2024, и из справки шаг с Control-кликом исчез: на страницах для macOS 13 и 14 он есть, на страницах для macOS 15 и новее его нет. Рабочих путей осталось два — кнопка «Все равно открыть» в разделе «Конфиденциальность и безопасность» и снятие карантина командой xattr в Терминале.

Что делать, если macOS вообще не открывает программу?

Сначала попробуйте кнопку «Все равно открыть» в разделе «Конфиденциальность и безопасность». Не помогло — снимите карантин командой xattr в Терминале, она решает и случай с «повреждена». Если и это не сработало, дело может быть не в подписи: проверьте версию macOS, архитектуру сборки и саму закачку.

Источники

  1. Открытие приложения от неизвестного разработчика на Mac — support.apple.com
  2. Gatekeeper и защита в процессе выполнения в macOS — support.apple.com
  3. Updates to runtime protection in macOS Sequoia — developer.apple.com
  4. macOS Big Sur 11.0.1 Universal Apps Release Notes — developer.apple.com