Введение
App Translocation — это встроенный механизм безопасности в macOS, который может стать причиной ошибок при запуске неподписанных или самоподписанных приложений. Если вы пытаетесь запустить программу, скачанную из интернета, и она внезапно «исчезает» или работает некорректно, скорее всего, виноват App Translocation. Этот гайд поможет вам понять, как он работает и как его отключить, чтобы нормально использовать нужное программное обеспечение.
Что такое App Translocation?
App Translocation (транслокация приложений) — функция системы Gatekeeper в macOS, представленная с OS X Mountain Lion (10.8). Когда вы запускаете приложение, которое не подписано доверенным разработчиком или не заверено Apple, macOS автоматически копирует его во временную изолированную папку (обычно в /private/var/folders/) и запускает оттуда. Это делается для ограничения доступа приложения к файловой системе и другим ресурсам, снижая потенциальный ущерб от вредоносного кода.
Ключевые особенности:
- Автоматическое срабатывание: Только при первом запуске неподписанного приложения.
- Изоляция: Приложение работает в «песочнице», не имея доступа к своим исходным файлам (например, к настройкам в папке приложения).
- Временное решение: Translocation действует до тех пор, пока приложение не будет подписано или не пройдет проверку Gatekeeper.
Если приложение зависит от файлов в своей папке (например, плагины или ресурсы), translocation может вызвать ошибки вроде «Файл не найден» или некорректную работу.
Почему App Translocation вызывает проблемы?
Хотя Translocation улучшает безопасность, он часто создает неудобства для пользователей:
- Потеря данных: Настройки, сохраненные в папке приложения, могут не сохраняться, так как translocation использует копию.
- Ошибки запуска: Некоторые программы проверяют свой путь и завершаются с ошибкой, если обнаруживают, что они запущены из временной папки.
- Сложность диагностики: Пользователь может не понять, почему приложение не работает, так как translocation происходит автоматически и без явных сообщений.
- Проблемы с обновлениями: Обновление приложения через встроенный механизм может проваливаться, так как оригинальные файлы недоступны.
Типичные симптомы:
- Приложение запускается, но сразу закрывается.
- Появляются ошибки доступа к файлам или папкам.
- Настройки приложения не сохраняются между сеансами.
- Сообщения вроде «Приложение повреждено и не может быть открыто» (хотя файл цел).
Как отключить App Translocation
Отключение App Translocation требует изменения глобальных настроек Gatekeeper. Это снизит уровень защиты, но решит проблемы с запуском. Выполняйте действия только с приложениями из доверенных источников.
Шаг 1: Подготовка
Убедитесь, что у вас есть доступ к администратору. Вам понадобится пароль для выполнения команд с sudo.
Шаг 2: Отключение Gatekeeper (это отключит Translocation)
- Откройте Терминал (через Spotlight или папку Утилиты).
- Введите следующую команду:
Нажмите Enter. Система запросит пароль администратора (вводите его, символы не отображаются).sudo spctl --master-disable - Дождитесь завершения. Эта команда отключает проверку подписи для всех приложений, что автоматически останавливает App Translocation.
Шаг 3: Перезагрузка
Перезагрузите Mac, чтобы изменения вступили в силу:
- Нажмите на логотип Apple в верхнем левом углу.
- Выберите «Перезагрузка».
Шаг 4: Проверка
После перезагрузки попробуйте запустить проблемное приложение. Оно должно работать из исходной папки (например, из /Applications). Если translocation все еще активен, убедитесь, что вы правильно ввели команду и перезагрузили систему.
Альтернативный метод: использование флага --no-translocate
Для отдельных приложений можно временно отключить translocation при запуске через Терминал:
open --no-translocate /Путь/К/Приложению.app
Это полезно, если вы не хотите отключать Gatekeeper глобально. Однако метод работает только при запуске из командной строки.
Важные предупреждения
Отключение App Translocation и Gatekeeper снижает защиту вашего Mac:
- Риск вредоносного ПО: macOS перестанет блокировать неподписанные приложения автоматически. Устанавливайте ПО только с официальных сайтов или из App Store.
- Рекомендация: После установки доверенного приложения рассмотрите возможность повторного включения Gatekeeper командой
sudo spctl --master-enable. - Совместимость: Некоторые приложения (например, от крупных компаний) могут требовать подписи для корректной работы с аккаунтами или облачными сервисами.
⚠️ Важно: Если вы отключили Gatekeeper, всегда проверяйте целостность загружаемых файлов (например, через хеши) и используйте антивирус.
Что дальше?
После отключения App Translocation:
- Протестируйте приложение: Убедитесь, что все функции работают, а настройки сохраняются.
- Рассмотрите подпись приложения: Если вы разработчик, подпишите приложение через Apple Developer Account, чтобы избежать необходимости отключать translocation.
- Верните Gatekeeper, если возможно: Как только приложение работает стабильно, включите Gatekeeper обратно для общей безопасности.
Часто задаваемые вопросы
Можно ли отключить App Translocation только для одного пользователя?
Нет, настройка spctl применяется глобально ко всей системе. Однако вы можете управлять правами через настройки конфиденциальности (System Preferences → Security & Privacy) для отдельных приложений.
Почему команда sudo spctl --master-disable не работает?
Убедитесь, что вы вводите команду точно и у вас есть права администратора. Также проверьте, не активен ли System Integrity Protection (SIP), который может ограничивать изменения. В этом случае временно отключите SIP (не рекомендуется).
Как узнать, активен ли App Translocation для конкретного приложения?
Запустите приложение, затем откройте Терминал и выполните:
ps aux | grep НазваниеПриложения
Если путь к приложению начинается с /private/var/folders/, translocation активен.
Будет ли приложение работать после отключения translocation, если оно из App Store?
Да, приложения из App Store всегда подписаны Apple и не подвергаются translocation. Отключение не повлияет на них.
Заключение
App Translocation — важная, но иногда назойливая функция безопасности macOS. Отключив его, вы сможете запускать любые приложения без ограничений, но помните о рисках. Используйте этот метод точечно, только для доверенного ПО, и старайтесь возвращать Gatekeeper в активное состояние после настройки. Если проблемы останутся, проверьте, не связаны ли они с другими механизмами, например, с System Integrity Protection или настройками конфиденциальности.