Подтвердить что ты не робот

Как заставить брандмауэр Mac OS X навсегда разрешить мое приложение для iOS?

Я пишу приложение iOS, которое действует, в частности, как сервер telnet. Естественно, он начинает прослушивать соединения, как только он начнется.

Когда я запускаю приложение в Simulator, Mac OS X (я оказался на 10.7.3) предлагает мне разрешить или запретить моему приложению принимать входящие сетевые подключения. Это стандартное сообщение брандмауэра, которое Mac OS X использует для всех неподписанных сетевых приложений.

Я устал от нажатия "Разрешить" пятьдесят или несколько раз в день, поэтому я ищу способ постоянно добавлять свое приложение в список разрешенных приложений брандмауэра.

Я пробовал следующее.

  • Откройте Activity Monitor во время работы моего приложения.
  • Выберите мое приложение. Нажмите "Осмотреть".
  • Перейдите на вкладку "Открыть файлы и порты". Одна из первых строк - это точный путь к моему приложению. Скопируйте и вставьте этот путь.
  • Откройте брандмауэр... Дополнительные настройки.
  • Нажмите кнопку + (добавить).
  • Перейдите к пути к программе и выберите его, добавив его в список приложений, для которых разрешены входящие подключения.

На последнем этапе есть важное решение. Вы можете добавить либо пакет приложения .app, либо Show Contents в этом пакете, либо добавить исполняемый файл Unix внутри. Я пробовал оба подхода.

Интересно, что брандмауэр на самом деле перестанет предупреждать вас о приложении на некоторое время. Однако после нескольких прогонов мне не ясно, какое событие на самом деле вызывает это изменение, но это происходит через полчаса или около того для меня, в общем случае - брандмауэр снова начинает предупреждать о приложении.

Как настроить брандмауэр навсегда Разрешить мое приложение iOS?

Естественно, я мог обойти эту проблему, отключив брандмауэр Mac OS X. Я также мог бы избежать того, чтобы снова получить осколок в моей ноге, отрубив его. Ни один из этих курсов действий не рекомендует мне.

Что бы вы предложили?

4b9b3361

Ответ 1

После долгих размышлений я обнаружил, что вручную добавление самого исполняемого файла в список "Разрешить" брандмауэра дает желаемый результат. Вы не добавляете .app, а скорее исполняемый файл Unix внутри папки .app Contents. Я полагал, что пробовал этот файл раньше, но в настоящее время он работает.

Ответ 2

Итак, мы хотим отменить следующий диалог

Вы хотите, чтобы приложение "NNN.app" принимало входящую сеть соединения?

которые появляются при каждой активации симулятора Xcode iOS. Я считаю, что сейчас есть решение для этого. Основываясь на моем ответе на этот блог.

Просто запустите следующие команды в окне терминала:

#temporarily shut firewall off:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off

#put Xcode as an exception:
/usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/Xcode.app/Contents/MacOS/Xcode

#put iOS Simulator as an exception:
/usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator

#re-enable firewall:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

Для меня это сработало. Обратите внимание, что адрес симулятора соответствует Xcode 8.

Ответ 3

Я думаю, лучшим решением может быть script процесс одобрения вашего приложения в брандмауэре.

Если я правильно помню, последний брандмауэр OSX на самом деле умный, чтобы определить приложения и отпечатки пальцев разрешенных двоичных файлов. Это предотвращает неожиданно эффективную тактику, просто называя вашу вредоносную программу "system32.exe" & c для избежания брандмауэра. Если это так, ваше приложение будет (правильно) заблокировано для того, чтобы не быть тем же самым двоичным файлом, который был одобрен, и на самом деле его нет.

Итак, попробуйте выполнить скриптовый брандмауэр, разрешив процесс и включив его в процесс сборки.

Ответ 4

Мне никогда не удавалось вручную добавлять исполняемый файл в разрешенный список брандмауэра. Здесь решение с использованием автоматизированного щелчка мыши :

  • Загрузите CLIclick. (Спасибо, Карстен.)
  • Поместите его в подходящее место, скажем /usr/local/bin.
  • Получить координаты экрана кнопки Allow, используя 4. (В моем примере это x: 750, y: 600.)
  • Создайте script с этим контентом (w: - время ожидания в мс):

    /usr/local/bin/cliclick c:750,600 w:1500 m:+0,+0 c:.
    

    (я не мог заставить CLIclick работать без "перемещения" его в одно и то же место (часть m:+0,+0) и снова щелкнуть в том же месте с помощью c:..)

  • Откройте Xcode Preferences / Behaviors и добавьте выше script. enter image description here
  • Наслаждайтесь!

Ответ 5

Я не знаю, правильно ли это, но для меня это работало.

  • Отключите брандмауэр
  • Соединитесь с приложением iphone с вашим mac
  • Проверьте, работает ли все в работе
  • Включите брандмауэр