iOS

Как отладить сетевые запросы в iOS-приложении за 5 минут

Когда iOS-приложение не отсылает данные или медленно работает, важно увидеть, что именно происходит в сети. В этом гайде вы научитесь использовать встроенные инструменты разработчика, эмулятор сетевых условий и сторонние инструменты, чтобы быстро диагностировать и исправить любые сетевые ошибки.

Обновлено 25 июля 2026 г.
5-10 мин
Средняя
FixPedia Team
Применимо к:iOS 15, iOS 16, iOS 17

Введение

Когда iOS-приложение неожиданно перестает отправлять данные, отображает устаревший контент или работает медленно, первое, что нужно сделать — это посмотреть, что именно происходит в сети. В этом руководстве вы узнаете, как быстро отладить сетевые запросы, используя встроенные инструменты разработки Xcode, браузерный Web Inspector и сторонний инструмент Charles Proxy. После выполнения этих шагов вы сможете выявлять причины сетевых ошибок, эмулировать реалистичные условия соединения и сохранять логи для дальнейшего анализа.

Требования

  • macOS 12+ (Monterey) или более новая.
  • Xcode 14+ (в комплекте с последними инструментами разработчика).
  • iOS-устройство на iOS 15–17 (iPhone, iPad) с включённым Режимом разработчика.
  • USB-кабель для подключения устройства к Mac.
  • Charles Proxy (бесплатная пробная версия или лицензия) и сертификат Root CA, установленный на устройстве.

Пошаговая инструкция

Шаг 1: Включить Web Inspector и подключить устройство

Откройте НастройкиSafariПоказать отладкуВключить Web Inspector. Это позволит Safari на Mac отслеживать сетевые запросы, идущие от iOS-приложения.

Подключите iPhone/iPad к Mac по USB. На устройстве убедитесь, что включён Режим разработчика:

  1. Откройте НастройкиОсновыО программе.
  2. Тапните по IPA (или Build) 10 раз — Режим разработчика активируется.

Шаг 2: Использовать Network Inspector в Xcode

  1. Запустите Xcode и откройте проект вашего приложения.
  2. Перейдите во вкладку ИнспекторСеть. В правом верхнем углу выберите подключённое iOS-устройство.
  3. Запустите приложение (⌘ + R). В инспекторе отображаются все HTTP/HTTPS запросы с деталями:
    • URL и HTTP-метод.
    • Код ответа (например, 200, 404, 500).
    • Размер тела и время загрузки.
  4. Щёлкните по запросу, чтобы увидеть исходящие/входящие заголовки и тело (если закодировано в JSON, body отображается в читаемом виде).

Шаг 3: Настроить Charles Proxy для перехвата трафика

  1. Скачайте и установите Charles Proxy (https://www.charlesproxy.com/).
  2. Подключите iOS-устройство к той же Wi-Fi сети, что и Mac.
  3. На устройстве перейдите в НастройкиПрофили и инструменты управления устройствами → найдите сертификат Charles Root CA и нажмите Установить.
  4. В Charles перейдите в ProxyProxy Settings и убедитесь, что включён режим Allow.
  5. На iOS-устройстве перейдите в НастройкиWi-Fi, тапните по активной сети, в разделе DNS установите DNS SettingsManual и добавьте 127.0.0.1. Подтвердите изменение подключения.

Теперь все HTTP/HTTPS запросы приложения пройдут через Charles.

Шаг 4: Эмулировать сетевые условия

В Xcode

  1. Выберите устройство в интерфейсе запуска.
  2. Перейдите в Device → Network и выберите режим Slow 3G или Lossy Network.
  3. Запустите приложение — теперь запросы будут обрабатываться с искусственно большим latency и packet loss.

В Charles

  1. Перейдите в Proxy → Options → SSL Proxying.
  2. Включите Enable SSL Proxying.
  3. Включите Preview для конкретного домена, чтобы видеть полные запросы/ответы в реальном времени.

Шаг 5: Проанализировать логи и исправить проблему

  1. В Network Inspector (Xcode) или Console (Charles) найдите запрос с ошибкой (коды 4xx/5xx, длительностью >5 сек).
  2. Проверьте URL, заголовки (User-Agent, Authorization) и payload на корректность.
  3. Если проблема в сервере, используйте браузер на Mac (Cmd+Shift+2) для проверки того же URL.
  4. Для Charles сохраните сессию: File → Save Session As… → выберите формат .cap. Это удобно для последующего анализа или отправки разработчикам бэкенда.

Проверка результата

  • Сетевой трафик: в Network Inspector (Xcode) или Charles отображаются все ожидаемые запросы с успешными статусами.
  • Производительность: задержка соответствует выбранным сетевым условиям (например, ~200–300 мс для Slow 3G).
  • Логи: экспортированные .cap-файлы содержат полную историю запросов без пропущенных записей.

Если всё отображается корректно, вы можете быть уверены, что сетевые ошибки устранены.

Возможные проблемы

  • Сертификат Charles не установлен – запросите установку заново в профиле устройства.
  • Запросы не проходят через Charles – убедитесь, что прокси настроен правильно (Settings → Wi-Fi → Configure Proxy).
  • Network Inspector показывает пустой список – убедитесь, что приложение не использует NSURLConnection/URLSession напрямую без поддержки HTTPS, проверьте параметры NSExceptionDomains.
  • Эмуляция сетевых условий не влияет на запросы – перезапустите симулятор/устройство и проверьте, что выбранные настройки активны.

Следуя этим шагам, вы сможете быстро выявлять и исправлять любые сетевые проблемы в iOS-приложениях. Удачной отладки!

Часто задаваемые вопросы

Как начать отладку сетевых запросов в iOS?
Какие инструменты лучше для отладки запросов?
Как эмулировать медленное соединение?
Как сохранить логи сетевых запросов для последующего анализа?

Полезное

Включить Web Inspector и подключить устройство
Использовать Network Inspector в Xcode
Настроить Charles Proxy для перехвата трафика
Эмулировать сетевые условия
Проанализировать логи и исправить проблему