Как настроить прокси Charles для отладки трафика на iOS?

«Как настроить прокси Charles для отладки трафика на iOS?» — вопрос из категории Мобильное тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, настраивал. Настройка Charles на iOS схожа с Android, но имеет особенности из-за строгой политики безопасности Apple.

Пошаговая настройка:

  1. Настройка Charles на ПК:

    • Запустите Charles и определите IP-адрес ПК (Help → Local IP Address).
  2. Настройка iOS-устройства:

    • Подключите устройство к той же Wi-Fi сети.
    • Перейдите в Настройки → Wi-Fi → нажмите на i рядом с активной сетью.
    • Прокси: Вручную.
      • Сервер: IP-адрес ПК.
      • Порт: 8888.
  3. Установка SSL-сертификата (обязательно для HTTPS):

    • На устройстве откройте Safari и перейдите по адресу chls.pro/ssl.
    • Нажмите Разрешить для загрузки профиля конфигурации.
    • Перейдите в Настройки → Основные → Профили VPN и управление устройством.
    • Найдите профиль Charles Proxy и нажмите Установить.
    • Ключевой шаг для iOS 10+:
      • Перейдите в Настройки → Основные → Об этом устройстве → Сертификаты доверия.
      • Включите доверие к корневому сертификату Charles.
  4. Настройка SSL Proxying в Charles:

    • Proxy → SSL Proxying Settings → Enable SSL Proxying.
    • Добавьте правило: Хост *, Порт 443.

Пример перехваченного запроса:

GET /api/products?category=books HTTP/1.1
Host: shop.example.com
Accept: application/json
User-Agent: ExampleApp/1.0 (iPhone; iOS 17.4; Scale/3.0)

Особенности iOS:

  • ATS (App Transport Security): Начиная с iOS 9, приложения по умолчанию требуют HTTPS. Charles позволяет обойти это для отладки.
  • Сертификаты с доверием: Без включения доверия в системных настройках HTTPS-трафик не будет перехватываться.
  • Приложения из App Store: Могут использовать certificate pinning, что блокирует перехват трафика.

Практическое применение:

  • Тестирование API-интеграций мобильного приложения.
  • Эмуляция различных сетевых условий (медленная сеть, таймауты).
  • Проверка корректности отправляемых и получаемых данных.

После тестов: Обязательно отключите прокси в настройках Wi-Fi и удалите сертификат (Настройки → Основные → Управление профилями).