Ошибка «Приложение не может быть открыто» — папке .app нужно право на выполнение

Быстрые ссылки
- Что показывает эта ошибка
- Как исправить шаг за шагом
- Почему папке .app нужен бит выполнения
- Альтернативные способы и когда они помогают
- Критерии приёмки и чеклист для разных ролей
Что показывает эта ошибка
Я лично столкнулся с этой проблемой несколько недель назад при запуске игры, купленной на itch.io. Пользователь видит одно короткое диалоговое окно macOS с сообщением вроде:

Там только кнопка «OK» — повторная попытка обычно не помогает. Эта ошибка, как правило, появляется при первом запуске приложения после установки. После исправления она не должна повторяться для того же приложения.
Как исправить — пошаговая инструкция
Ниже — подробный, проверенный порядок действий. Все команды выполняются в Терминале.
1) Откройте Терминал
Откройте Приложения > Утилиты > Terminal или используйте Spotlight (Cmd+Space → Terminal). Окно Терминала обычно открывается с приглашением в домашнем каталоге (~):

2) Перейдите в каталог /Applications
Вместо работы с полной путём к приложению удобно перейти в системный каталог приложений:
cd /ApplicationsПосле выполнения приглашение изменится и будет содержать /Applications:

3) Найдите папку приложения и проверьте права
Если вы не уверены в точном имени папки, перечислите содержимое каталога:
ls
Чтобы увидеть подробные права доступа и дату, выполните:
ls -ld Имя\ Приложения.appили используйте кавычки, если есть пробелы:
ls -ld "Имя Приложения.app"В примере это выглядело так:
ls -ld Double\ Trip.app
В выводе вы увидите строку прав вроде drw-rw-rw- или drwxrwxrwx. Для запуска приложения важен символ x (execute) у папки: d означает директорию, а x указывает возможность “войти” в папку и выполнить файл внутри. Если вместо x вы видите дефис (-), папка не имеет бита выполнения и macOS не позволит запустить приложение.
4) Исправьте права на выполнение
Если у папки нет бита x, выполните:
chmod +x "Имя Приложения.app"Пример:
chmod +x Double\ Trip.appПояснение: chmod — change mode; +x добавляет право выполнения.
После этого попробуйте снова открыть приложение через Finder или двойной щелчок. Если проблема была только в правах, приложение откроется.
Почему папке .app нужен бит выполнения
Кратко: на macOS приложение — это специальная папка (пакет), которую система воспринимает как единый объект. Чтобы macOS могла открыть пакет и запустить исполняемый файл внутри, каталог должен иметь право «входа» (execute). Без него система не сможет «просмотреть» содержимое пакета и выполнит отказ с кратким и непонятным сообщением.
Технически: permission x для директории разрешает проход в неё и чтение списка файлов при условии соответствующих прав чтения. Для запуска приложения macOS обращается к исполняемому файлу внутри пакета, а отсутствие x блокирует этот доступ.
Если искать виновников: чаще всего это ошибка упаковщика приложения или архиватора, который при распаковке сбрасывает права, реже — ошибка распространителя. Apple могла бы предоставить более точную подсказку в тексте ошибки.
Альтернативные причины и способы решения
Иногда та же видимая ошибка вызвана другими механизмами безопасности macOS. Проверяйте эти сценарии последовательно.
1) Карантин (quarantine) — «App is damaged and can’t be opened»
Если приложение помечено флагом карантина после загрузки из интернета, вы увидите сообщение про «повреждённое приложение». Удаление атрибута карантина выполняется так:
xattr -d com.apple.quarantine "/Applications/Имя Приложения.app"Этот метод удаляет метку загрузки из интернета. Не используйте его для сомнительных приложений — убедитесь, что вы доверяете источнику.
2) Gatekeeper и проверка подписи
Если приложение не подписано или подпись нарушена, macOS может блокировать запуск. Для обхода Gatekeeper временно можно разрешить запуск:
sudo spctl --master-disableЭто отключает проверку для всего Mac — не рекомендуется как постоянное решение. Более безопасно добавить конкретное приложение:
sudo spctl --add --label "MyLabel" "/Applications/Имя Приложения.app"Или открыть приложение через правый клик -> Открыть в Finder и подтвердить запуск, если система предлагает такую опцию.
3) Проблемы с правами владельца или группой
Иногда файл принадлежит другому пользователю и у текущего пользователя нет прав. Проверьте владельца:
ls -l "Имя Приложения.app"Изменить владельца можно через sudo chown, но делать это стоит только если вы понимаете последствия:
sudo chown -R $(whoami):staff "Имя Приложения.app"Это рекурсивно сделает вас владельцем, что иногда необходимо при переносе приложений из других систем.
Когда описанный chmod не поможет
- Если проблема в карантине (xattr) — chmod бессилен.
- Если исполняемый файл внутри пакета отсутствует или повреждён — chmod не восстановит его.
- Если подпись нарушена и система блокирует из-за Gatekeeper — потребуется подпись, spctl или отключение Gatekeeper.
- Если приложение 32-битное на macOS, требующей 64-бит (например, современные macOS) — права не помогут.
Быстрый чеклист для разных ролей
Обычный пользователь
- Перейти в /Applications, выполнить chmod +x “Имя Приложения.app”.
- Если не помогло — правый клик -> Открыть и подтвердить.
- Если есть сомнения — удалить и загрузить приложение с официального сайта.
Администратор / IT
- Проверить xattr и spctl для массовых установок.
- При деплое скриптом обеспечить правильные права (chmod и chown) и проверку подписи.
- Логировать ошибки установки и создавать пакеты .pkg или использовать MDM.
Разработчик / распространитель приложений
- Убедитесь, что пакет при сборке сохраняет права файлов.
- Подписывайте и, по возможности, нотариально отправляйте приложение Apple.
- Тестируйте установку из архива и из DMG с чистой macOS.
Чек-лист для восстановления (SOP)
- Открыть Терминал.
- cd /Applications
- ls -ld “Имя Приложения.app” — проверить наличие x.
- chmod +x “Имя Приложения.app” — если x отсутствует.
- Повторно попытаться открыть приложение.
- Если не работает: xattr -l “Имя Приложения.app” — удалить карантин при доверии.
- Если подпись: проверить spctl -a -vv “Имя Приложения.app” и действовать исходя из результата.
Таблица соответствия проблемы и решения
| Признак | Возможная причина | Рекомендуемое действие |
|---|---|---|
| Ошибка «не может быть открыто» и ls показывает drw-… | Нет бита x у каталога | chmod +x “Имя Приложения.app” |
| Ошибка говорит «App is damaged» | Карантин (com.apple.quarantine) | xattr -d com.apple.quarantine “…” |
| Система блокирует запуск как небезопасное | Gatekeeper/подпись | spctl –add или временное отключение Gatekeeper |
| Приложение падает при запуске | Отсутствие 64-битной поддержки или повреждённый бинарник | Проверить системные требования; переустановить или обновить |
Критерии приёмки
- Приложение открывается двойным щелчком из Finder без появления ошибок.
- ls -ld показывает d…x… для каталога приложения (владелец/группа/прочие — в зависимости от политики).
- Нет флага карантина (xattr не возвращает com.apple.quarantine).
- spctl отмечает приложение как допустимое или подписанное в соответствии с политикой организации.
Умная модель для запоминания (ментальная модель)
- Файлы — чтение/запись; каталоги — чтение/вход (execute). Для запуска приложения система должна «войти» в пакет → нужен бит x. Если вход запрещён, macOS выдаёт общую ошибку.
Справочник команд (cheat sheet)
- Проверить права: ls -ld “Имя Приложения.app”
- Добавить бит выполнения: chmod +x “Имя Приложения.app”
- Удалить карантин: xattr -d com.apple.quarantine “Имя Приложения.app”
- Проверить подпись: spctl -a -vv “Имя Приложения.app”
- Сменить владельца (с осторожностью): sudo chown -R $(whoami):staff “Имя Приложения.app”
Дополнительные советы и безопасность
- Не удаляйте карантин для приложений из ненадёжных источников.
- Не отключайте Gatekeeper как постоянное решение; используйте это только в контролируемой среде.
- При распространении приложения проверьте упаковку и подпись на чистой виртуальной машине, чтобы повторить установку как у конечного пользователя.
Часто встречающиеся вопросы
Q: Почему разработчики не устанавливают правильные права? A: Иногда архиваторы или способы копирования (например, через FTP/SCP без сохранения прав) могут сбросить биты. Автоматизация сборки должна учитывать это.
Q: Можно ли массово исправить права на всех приложениях? A: Теоретически да (chmod -R +x /Applications/*.app), но это рискованно — лучше исправлять конкретные пакеты.
Q: Как отличать проблему прав от проблем с подписью? A: Проверяйте ls -ld: если нет x — это права. Если x есть, но spctl жалуется — это подпись/Gatekeeper.
Заключение
Ошибка «Приложение не может быть открыто» часто пугает пользователей из‑за своей краткости, но обычно решается просто: добавьте бит выполнения папке приложения или снимите карантин, если приложение из доверенного источника. Для безопасного развёртывания проверяйте упаковку, подписи и политику распространения.
Важно: перед любыми изменениями прав и удаления карантина убедитесь, что ПО пришло из надёжного источника.
Важное замечание: если после всех шагов приложение по‑прежнему не открывается или падает, возможно, проблема внутри самого приложения (повреждённый бинарный файл, отсутствие совместимости с вашей версией macOS), и потребуется обновление или обращение к разработчику.
Источники и дополнительные чтения: проверка xattr, spctl и базовые руководства по правам POSIX на macOS.
Похожие материалы
CopyQ на Linux: установка и руководство
Dolby Atmos не работает в Windows 11 — исправление
Как включить фоновые звуки на iPhone
Копирование и вставка на Mac — полный гид
Два монитора по HDMI: настройка и советы