Я пытаюсь отслеживать звонки из приложения на мой сервер, как это делает Firebug. Я не мог найти способ увидеть это в iOS Simulator или в xCode.
Есть ли способ сделать это, не перехватывая весь трафик? Если нет, какой инструмент вы бы посоветовали?
Я пытаюсь отслеживать звонки из приложения на мой сервер, как это делает Firebug. Я не мог найти способ увидеть это в iOS Simulator или в xCode.
Есть ли способ сделать это, не перехватывая весь трафик? Если нет, какой инструмент вы бы посоветовали?
Ответы:
Лично я использую Чарльза для таких вещей.
Когда он включен, он будет отслеживать каждый сетевой запрос, отображая расширенные детали запроса, включая поддержку SSL и различных форматов запросов / ответов, таких как JSON и т. Д.
Вы также можете настроить его для прослушивания только запросов к определенным серверам, а не всего трафика.
Это коммерческое программное обеспечение, но есть пробная версия, и IMHO, безусловно, отличный инструмент.
Прокси-сервер «человек посередине», как это предлагается в других ответах, является хорошим решением, если вы хотите видеть только трафик HTTP / HTTPS. Burp Suite довольно хорош. Однако настройка может быть сложной задачей. Я не уверен, как бы вы убедили симулятор поговорить с ним. Возможно, вам придется настроить прокси на вашем локальном Mac для вашего экземпляра прокси-сервера, чтобы он мог перехватить, поскольку симулятор будет использовать среду вашего локального Mac.
Лучшее решение для сниффинга пакетов (хотя оно работает только для реальных устройств iOS, а не для симулятора), которое я нашел, - это использовать rvictl
. У этого сообщения в блоге хорошая рецензия. В основном вы делаете:
rvictl -s <iphone-uid-from-xcode-organizer>
Затем вы обнюхиваете интерфейс, который он создает с помощью Wireshark (или вашего любимого инструмента), и когда вы закончите, выключите интерфейс с помощью:
rvictl -x <iphone-uid-from-xcode-organizer>
Это хорошо, потому что, если вы хотите обнюхивать симулятор, вам также придется пробираться через трафик на локальный Mac, но при этом rvictl
создается виртуальный интерфейс, который просто показывает вам трафик с устройства iOS, которое вы подключили к USB. порт.
Бесплатный прокси-инструмент с открытым исходным кодом, который легко запускается на Mac, - mitmproxy .
На веб-сайте есть ссылки на двоичный файл Mac, а также исходный код на Github.
Документы содержат очень полезное введение в загрузку сертификата в ваше тестовое устройство для просмотра трафика HTTPS.
Не такой красивый, как у Charles, но он делает все, что мне нужно, бесплатно и поддерживается. Хороший материал и довольно простой, если вы раньше использовали некоторые инструменты командной строки.
ОБНОВЛЕНИЕ: я только что заметил на веб-сайте, что mitmproxy доступен как домашняя установка. Не может быть проще.
Xcode обеспечивает ведение журнала диагностики CFNetwork. Документ Apple
Чтобы включить его, добавьте CFNETWORK_DIAGNOSTICS=3
в раздел Environment Variable:
Это покажет запросы от приложения с их заголовками и телом. Обратите внимание, что OS_ACTIVITY_MODE
необходимо установить, enable
как показано. В противном случае никакие выходные данные не будут отображаться на консоли.
Выберите свой интерфейс
Добавить filter
началоcapture
Щелкните любое действие или кнопку, которые вызовут запрос GET / POST / PUT / DELETE.
Вы увидите это в списке в wirehark
Если вы хотите узнать больше об одном конкретном пакете, просто выберите его и нажмите Follow> HTTP Stream .
надеюсь, что это поможет другим !!
Если у вас есть кабельное соединение и Mac, то есть простой и мощный метод:
установите бесплатный Wireshark, убедитесь, что он может захватывать устройства (и это нужно делать после каждой перезагрузки компьютера !):
Судо chmod 644 / dev / bpf *
Теперь поделитесь своей сетью с Wi-Fi. Системные настройки> Общий доступ> Общий Интернет. Убедитесь, что у вас есть «Поделиться своими подключениями из: Ethernet» и что вы используете: Wi-Fi. Вы также можете настроить безопасность Wi-Fi, это не мешает мониторингу данных.
Подключите телефон к вновь созданной сети. Мне здесь часто нужно несколько попыток. Если телефон не хочет подключаться, выключите Wi-Fi на Mac, затем повторите шаг 2 выше и проявите терпение.
Запустите Wireshark для захвата беспроводного интерфейса с помощью Wireshark, вероятно, это "en1". Отфильтруйте необходимые IP-адреса и / или порты. Когда вы найдете интересный пакет, выберите его, щелкните правой кнопкой мыши (контекстное меню)> Follow TCP Stream, и вы увидите красивое текстовое представление запросов и ответов.
И что самое лучшее: точно такой же трюк работает и на Android!
Telerik Fiddler - хороший выбор
http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices
Хорошим решением, если вы привыкли к инструментам инспектора Chrome, является отладчик Pony: https://github.com/square/PonyDebugger
Настроить это немного сложно, но как только вы это сделаете, все будет хорошо. Обязательно используйте Safari вместо Chrome, чтобы использовать его.
Пользуюсь netfox. Его очень легко использовать и интегрировать. Вы можете использовать его на симуляторе и устройстве. Он показывает все запросы и ответы. Он поддерживает JSON, XML, HTML, изображения и другие типы ответов. Вы можете обмениваться запросами, ответами и полным журналом с помощью форматов обмена по умолчанию IOS (Gmail, WhatsApp, электронная почта, Slack, смс и т. Д.)
Вы можете проверить на GitHub: https://github.com/kasketis/netfox
Netfox обеспечивает быстрый просмотр всех выполненных сетевых запросов, выполняемых вашим приложением iOS или OSX. Он захватывает все запросы - конечно, ваши, запросы от сторонних библиотек (таких как AFNetworking, Alamofire или другие), UIWebViews и т. Д.