Я пытаюсь контролировать вызовы из приложения на свой сервер, как это делает Firebug. Я не мог найти способ увидеть это в iOS Simulator или в xCode.
Есть ли способ сделать это, не обнюхивая весь трафик? Если нет, какой инструмент вы бы предложили?
Я пытаюсь контролировать вызовы из приложения на свой сервер, как это делает Firebug. Я не мог найти способ увидеть это в iOS Simulator или в xCode.
Есть ли способ сделать это, не обнюхивая весь трафик? Если нет, какой инструмент вы бы предложили?
Лично я использую Charles для такого рода материалов.
Когда он включен, он будет отслеживать каждый сетевой запрос, отображая детали расширенного запроса, включая поддержку 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>
Это хорошо, потому что, если вы хотите упаковать sniff на симулятор, вам придется пробираться через трафик и на свой локальный Mac, но rvictl
создает виртуальный интерфейс, который показывает вам трафик с устройства iOS. 'подключен к вашему USB-порту.
Бесплатный прокси-сервер с открытым исходным кодом, который легко запускается на Mac, mitmproxy.
Веб-сайт включает ссылки на двоичный файл Mac, а также исходный код на Github.
Документы содержат очень полезное введение для загрузки сертификата в тестовое устройство для просмотра трафика HTTPS.
Не совсем как GUI-tastic, как Чарльз, но он делает все, что мне нужно, и его бесплатно и поддерживается. Хороший материал и довольно простой, если раньше вы использовали некоторые инструменты командной строки.
ОБНОВЛЕНИЕ: я только что заметил на веб-сайте, что mitmproxy доступен как установка homebrew. Не может быть проще.
Недавно я нашел git repo, который облегчает его.
Вы можете попробовать это.
С уважением.
Xcode обеспечивает ведение журнала диагностики CFNetwork. Apple Doc
Чтобы включить его, добавьте CFNETWORK_DIAGNOSTICS=3
в разделе Переменная среды:
Это покажет запросы от приложения с его заголовками & тело. Обратите внимание, что OS_ACTIVITY_MODE
должен быть установлен в enable
, как показано. В противном случае выходные данные не будут отображаться на консоли.
Если у вас есть кабельное соединение и Mac, тогда есть простой и мощный метод:
установите бесплатный Wireshark, убедитесь, что он может захватывать устройства с помощью (и вам нужно сделать это после каждого перезапуска компьютера!):
sudo chmod 644/dev/bpf *
Теперь поделитесь своей сетью с Wi-Fi. Системные настройки > Совместное использование > Общий доступ к Интернету. Убедитесь, что у вас есть "Поделитесь своими подключениями с: Ethernet" и используйте: Wi-Fi. Вы также можете настроить некоторую защиту Wi-Fi, это не мешает вашему мониторингу данных.
Подключите телефон к вновь созданной сети. Мне нужно довольно часто несколько попыток. Если телефон не хочет подключаться, включите Wi-Fi Mac, затем повторите шаг 2 выше и будьте терпеливы.
Запустите Wireshark, захватив ваш беспроводной интерфейс с помощью Wireshark, это, вероятно, "en1". Отфильтруйте необходимые IP-адреса и/или порты. Когда вы найдете интересующий пакет, выберите его, щелкните правой кнопкой мыши (контекстное меню) > Follow TCP Stream, и вы увидите приятное текстовое представление запросов и ответов.
И что самое лучшее: точно такой же трюк работает и для Android!
Выберите свой интерфейс
Добавить filter
начать capture
Нажмите на любое действие или кнопку, которая вызовет запрос GET/POST/PUT/DELETE
Вы увидите это в списке в Wireshark
Если вы хотите узнать больше информации об одном конкретном пакете, просто выберите его и следуйте> HTTP Stream.
надеюсь, это поможет другим !!
Хорошим решением, если вы привыкли к инструментам проверки хрома, является отладчик Pony: https://github.com/square/PonyDebugger
Немного больно настроить, но как только вы это сделаете хорошо. Не забудьте использовать Safari вместо Chrome, чтобы использовать его.
Telerik Fiddler - хороший выбор
http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices
Я использую Netfox. Это очень легко использовать и интегрировать. Вы можете использовать его на симуляторе и устройстве. Он показывает все запросы и ответы. Он поддерживает JSON, XML, HTML, изображения и другие типы ответов. Вы можете обмениваться запросами, ответами и полным журналом с помощью стандартных форматов обмена IOS (Gmail, WhatsApp, электронная почта, slack, sms и т.д.).
Вы можете проверить на GitHub: https://github.com/kasketis/netfox
Netfox обеспечивает быстрый просмотр всех выполненных сетевых запросов, выполняемых вашим приложением iOS или OSX. Он захватывает все запросы - конечно ваши, запросы от сторонних библиотек (таких как AFNetworking, Alamofire или еще), UIWebViews и т.д.