Я принимал это так много раз, что брандмауэр уже должен помнить это.
Например, я получаю его для Eclipse при запуске моих java-программ в режиме отладки ... иногда это диалоговое окно отображается очень коротко, например полсекунды, и исчезает. Я также получаю его для iTunes (когда я включаю общий доступ к своей библиотеке) и других программ, даже если они перечислены в панели настроек брандмауэра (дополнительные настройки).
macos
snow-leopard
firewall
Петр Штибраны
источник
источник
Ответы:
Здесь есть два варианта:
plist
файл для этих приложений, запустить их, а затем добавить их в список. Ответственность за многие варианты поведения несет plist, и я готов поспорить, что либо обновление ОС, либо приложение может привести к разрыву «ссылки».О
plist
файлах ... plist - это специальный вид текстового файла, который содержит свойства приложения и других ресурсов, обычно ОС, для хранения и повторного использования информации, необходимой для запуска приложения.plist
является типом файла и имеет много применений, обычно хранит пользовательские настройки, но, по сути, это файл XML. Вы можете посмотреть, есть ли какие-либо кеши, которые обычно являютсяplist
файлами, для рассматриваемых приложений в/Library/Caches
и/System/Library/Caches
. Есть и одна~/Library/Caches/
вещь, но плохие вещи могут случиться, когда они осматривают все вокруг, так что оставьте это в покое. Система входит в эти папки по разным причинам, и я обычно вычищаю первые две папки, которые я перечислял полностью, примерно раз в месяц.источник
~
s в пути к файлам ссылку на домашнюю папку текущего пользователя или корневой каталог?Мне никогда не приходилось создавать сертификат с использованием этого метода.
Если это не поможет, попробуйте без
--deep
и без косой черты:Обратите внимание, просто для ясности: после применения подписи, запустите приложение, примите входящие подключения в последний раз, затем выйдите и запустите снова, чтобы убедиться, что запрос пропал.
источник
-
после--sign
означает, что используется «специальная подпись»; нет необходимости иметь сертификат для использования этой команды. Я не понимаю, почему это противоречило бы использованию терминала. Беги,man codesign
чтобы увидеть объяснение.sudo codesign --force --sign - /path/to/application.app
работал для меня, но не вариант, предложенный автором. Интересно,--deep
была ли проблема с главной чертой?Хотя ссылка RedYeti полезна, просто для того, чтобы сэкономить несколько кликов для других, позвольте мне напомнить, как создать сертификат для подписи кода и использовать его для (повторной) подписи кода:
Создайте свой собственный сертификат подписи кода:
В Доступе Цепочки для ключей, Доступ Цепочки для ключей> Помощник Сертификата> Создать сертификат. Это запускает Ассистент Сертификата:
Имя: введите здесь произвольную строку, которую вы можете запомнить. Избегайте пробелов, иначе вам потребуется экранировать имя сертификата при использовании
codesign
из командной строки.Тип удостоверения: самоподписанный корень
Тип сертификата: Кодовая подпись
Установите флажок «Позвольте мне переопределить значения по умолчанию», это очень важно
Серийный номер: 1 (ОК, если комбинация имени сертификата / серийного номера уникальна)
Срок действия: 3650 (дает 10 лет)
Адрес электронной почты, имя и т. Д. Заполните, как хотите.
Информация о паре ключей: установлена в RSA, 2048 бит. ИМХО не имеет большого значения.
От «Расширения использования ключа» до «Расширения альтернативного имени субъекта»: примите значения по умолчанию.
Расположение: логин брелок.
После того, как он создан, установите «Всегда доверять» в цепочке ключей входа в систему: щелкните правой кнопкой мыши сертификат, выберите «Получить информацию», а в разделе «Доверие» установите «При использовании этого сертификата» значение «Всегда доверять».
Повторная подпись приложения:
codesign -f --deep -s <certname> /path/to/app
Убедитесь, что это сработало:
codesign -dvvvv /path/to/app
Наслаждайтесь!
ОБНОВЛЕНИЕ: Люди спрашивали меня, почему это не работает в macOS 10.14 «Мохаве». Теперь, когда я наконец обновился :-), вот что я узнал.
По сути, не используйте самозаверяющий сертификат для подписи кода. Создайте сертификат, используя свой Apple ID в XCode вместо этого. Чтобы кратко повторить шаги:
В Xcode> Настройки> Учетные записи, выберите свой идентификатор разработчика Apple, нажмите «Управление сертификатами», выберите «+» в левом нижнем углу, он предлагает вам опцию «Apple Development». Выберите это, это сделает сертификат для вас. Нажав Ctrl-клик по новому сертификату, вы можете экспортировать его (в
.p12
формате) и,open
загрузив этот.p12
файл, загрузить в свою цепочку для ключей входа в систему.Вы увидите, что этот сертификат действителен в течение года, «выданного: Apple Worldwide Certification Authority». Я подозреваю, что это заслуживает доверия, чем самозаверяющий сертификат.
Теперь вы можете подписать свое приложение, как и раньше, с помощью
codesign -f -s <apple_ID> /path/to/prog
. Я попробовал это с простым двоичным файлом (скомпилировано изhello.c
:-)), и это можно проверить с помощьюcodesign -v
.Я еще не пробовал это с пакетами Python, поэтому я не советую людям, которые упомянули в своих комментариях, что это не может подписывать "python.app".
источник
Это относится к тому, подписано ли приложение или нет. Если он не подписан, предпочтение не будет запомнено.
Чтобы увидеть, подписано ли приложение, сделайте это в Терминале:
Для Eclipse - мой говорит, что он вообще не подписан. Я не могу комментировать дальше, как подписать приложение, так как я не удосужился сделать это, но этот ответ на суперпользователя покрывает это:
https://superuser.com/questions/100013/why-does-the-mac-os-x-firewall-dialog-recurringly-pop-up-and-disappear-by-itself#300841
источник
Просто обратите внимание: если вы используете виртуальную среду, обязательно подпишите приложение, которое используется для этой среды. Я знаю, что это очевидно, но все же нужно было сказать.
источник
Я ценю, что это старый Q & A, но это был первый хит на Google для меня, когда у меня была такая же проблема. Просто хотел добавить что-то для других, что может приземлиться здесь.
Для выполнения любой из перечисленных здесь команд кодовых знаков необходимо установить инструменты командной строки xcode. Без них можно получить сообщение об ошибке:
Чтобы это исправить, установите инструменты с:
Я бы прокомментировал сообщение Ахалла, но у меня нет очков репутации, чтобы сделать это.
источник
Я получал это диалоговое окно (Canon ccpd) каждый раз после запуска компьютера. Откройте брандмауэр> Безопасность и конфиденциальность> разблокировать, чтобы включить изменения> нажмите кнопку «Включить скрытый режим»> нажмите кнопку «Блокировать все входящие подключения».
После этого больше не будет раздражающего диалогового окна драйвера принтера Canon.
источник
Я попробовал все вышеизложенное в Mac 10.13, и ничего не получалось.
В конце я написал скрипт, который запускался при выходе из системы, подключенный к хуку входа, который отключал брандмауэр, поэтому при входе в систему ему больше не требовалось разрешение, а затем с помощью delayedlauncher запускался другой скрипт, который включал брандмауэр.
Все хорошо сейчас
источник
В моей ситуации используются две копии Eclipse, установленные на MacOS Mojave 10.14.5. Первая копия была авторизована с помощью брандмауэра MacOS. Вторая копия всегда будет отображать приглашение «принять входящие соединения». Выбор «Принять» продолжит отображать сообщение после каждой перезагрузки, по-видимому, настройки брандмауэра не обновлялись.
Решением было открыть Системные настройки MacOS -> Безопасность и конфиденциальность -> Брандмауэр, разблокировать экран, Параметры брандмауэра. Выберите Eclipse.app «Разрешить входящие подключения» и удалите его кнопкой «-». В следующий раз, когда я выбрал «Разрешить» для Eclipse, приглашение «принимать входящие подключения» было последним.
источник
Решением для меня было просто отключить брандмауэр. Чрезвычайно распространено создание веб-частей программного обеспечения, которые, конечно, не подписаны, потому что вы их компилируете изначально.
Откройте центр внимания с помощью CMD + пробел, выполните поиск «конфиденциальность» и выберите «Безопасность и конфиденциальность». Затем перейдите на вкладку «Брандмауэр» и отключите там брандмауэр.
источник