Заставить Mac доверять приложению (синергия в окне входа в систему)
Я пытаюсь получить синергию, чтобы загрузить, когда мой Mac запускается, чтобы я мог использовать мою мышь / клавиатуру для входа. Я следовал этим инструкциям
http://sourceforge.net/p/synergy2/discussion/199580/thread/76cf630a
Где моя синология установлена в /Applications/Synergy.app/
Файл plist выглядит следующим образом
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key> <true/>
<key>Label</key> <string>net.sourceforge.synergy2.loginwindow</string>
<key>LimitLoadToSessionType</key> <string>LoginWindow</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Synergy.app/Contents/MacOS/synergyc</string>
<string>-f</string>
<string>-1</string>
<string>--name</string>
<string>mini</string>
<string>--debug</string>
<string>WARNING</string>
<string>192.168.1.200</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Но я получаю эти ошибки в /var/log/system.log
synergyc[220]: 3891612: (connect_and_check) Untrusted apps are not allowed to connect to or launch Window Server before login.
Все файлы принадлежат правильно
-rwxr-xr-x 1 root wheel 893040 May 2 21:07 Synergy
-rwxr-xr-x 1 root wheel 3999988 May 2 21:07 synergyc
-rwxr-xr-x 1 root wheel 4269168 May 2 21:07 synergys
Я удалил карантин
xattr -d com.apple.quarantine /Applications/Synergy.app/Contents/MacOS/*
Я не знаю, что еще делать? Почему OSX так сложно? Что еще я могу попробовать?
PS Я попробовал метод ловушки, но это тоже не сработало. Этот подход выглядит чище.
1 ответ
Из технической заметки Apple о разработчиках и агентах:
Если в Mac OS X 10.5 и более поздних версиях вы видите сообщение, подобное показанному в листинге 9, вы можете ошибочно думать, что решение состоит в том, чтобы заставить систему "доверять" вашему приложению, возможно, с помощью подписи кода.
Листинг 9: Доверительное сообщение перед входом в систему
Untrusted apps are not allowed to connect to or launch Window Server before login.
Однако это не так. Это сообщение действительно говорит вам, что вы пытаетесь подключиться к серверу окон из неправильного контекста. Это сообщение появляется, если вы пытаетесь подключиться к серверу глобального оконного сервера вне контекста перед входом в систему до того, как пользователь войдет в систему; обычно это означает, что вы пытаетесь использовать сервер окон из демона.
Вы не должны пытаться исправить это, убедив оконный сервер доверять вашей программе; это просто вызовет другие проблемы в будущем. Например, если вы успешно подключаетесь к оконному серверу с вашего демона, вам все равно придется иметь дело с проблемами жизненного цикла оконного сервера, описанными ранее.
Вместо этого вы должны исправить эту проблему, изменив код для запуска в правильном контексте. Если вам необходимо подключиться к оконному серверу в контексте предварительной регистрации, создайте агент launchd перед входом в систему. Пример этого см. В примере кода "PreLoginAgents".
Мне кажется, что "правильный" способ сделать это - переписать саму синергию (см. Ссылку "Пример кода" выше). Есть сообщение об ошибке синергии по этому вопросу, поданное 3 года назад без каких-либо реальных действий... Я думаю, если вы хотите, чтобы это было исправлено, решать вам.