Charles Proxy и Proxyman: отладка HTTPS в мобильных приложениях

Charles Proxy и Proxyman: отладка HTTPS в мобильных приложениях Однажды на проекте с интеграцией сложного API приложение на iOS начало выдавать ошибки `NSURLErrorDomain -1200`. Без перехвата трафика мы бы потратили дни на дебаг. Charles Proxy и Proxyman решают эту задачу за минуты. Эти инструмент

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Charles Proxy и Proxyman: отладка HTTPS в мобильных приложениях
Простой
от 4 часов до 2 дней

Наши компетенции:

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

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Charles Proxy и Proxyman: отладка HTTPS в мобильных приложениях

Однажды на проекте с интеграцией сложного API приложение на iOS начало выдавать ошибки NSURLErrorDomain -1200. Без перехвата трафика мы бы потратили дни на дебаг. Charles Proxy и Proxyman решают эту задачу за минуты. Эти инструменты перехватывают HTTPS, WebSocket и HTTP/2 трафик, показывают заголовки, тела запросов и ответов, тайминги. Мы — команда мобильных разработчиков с 5+ лет опыта, выполнили 50+ проектов по отладке и настройке сетевого взаимодействия. Настраиваем их под ключ для iOS, Android и Flutter-проектов с учётом особенностей вашего стека. Согласно Charles Proxy, установка корневого сертификата — обязательный шаг для просмотра HTTPS. Экономия времени на отладку достигает 16 часов в месяц, а снижение затрат — до 60%.

Проблемы, которые решаем: от certificate pinning до Throttling

Certificate pinning — главный барьер. Приложение с пиннингом отвергает прокси-сертификаты. Мы добавляем условное отключение в debug-сборках:

  • iOS: #if DEBUG с URLCredential(trust:)
  • Android: network_security_config.xml с debug-overrides

В 80% проектов встречается либо самоподписанный CA, либо статический ключ. Без обхода pinning прокси бесполезен.

Медленное соединение — тестирование в условиях низкого bandwidth. Charles Throttling настраивается под реальные профили: 3G, Edge, кастомные задержки. Например, лимит 100 Кбит/с с задержкой 300 мс.

Rewrite правил — подмена ответов и URL для тестирования сценариев. Симуляция ошибки 500, замена production на staging, добавление заголовков. Экономит 2-4 часа в неделю.

Как обойти certificate pinning: code-примеры

Если приложение использует certificate pinning, Charles/Proxyman не увидят трафик — NSURLErrorDomain -1200 или SSLPeerUnverifiedException. Решение для dev/QA-сборки:

iOS: условно отключить pinning через `#if DEBUG`
#if DEBUG completionHandler(.useCredential, URLCredential(trust: challenge.protectionSpace.serverTrust!)) #else // production pinning logic #endif 
Android: `network_security_config.xml` с debug-конфигом
<!-- res/xml/network_security_config.xml (debug) --> <network-security-config> <debug-overrides> <trust-anchors> <certificates src="user"/> </trust-anchors> </debug-overrides> </network-security-config> 

С таким подходом на debug-сборке система доверяет пользовательским CA, на release — нет. Гарантируем, что production-логика не изменится.

Какой инструмент выбрать: Proxyman или Charles?

Критерий Charles Proxy Proxyman
Интерфейс Java, устаревший SwiftUI, современный
WebSocket Есть, но неудобно Нативная поддержка, фреймы в реальном времени
HTTP/2 Ограниченно Полная поддержка
Script editor Нет встроенного JavaScript-скрипты для модификации запросов
Breakpoints Есть Есть, удобнее управление
Цена Бесплатно 30 дней, далее $50 $49/год или $89 бессрочно

Для работы с WebSocket и HTTP/2 Proxyman удобнее, Charles надёжнее для legacy и больших команд.

Как настроить rewrite rules?

Rewrite rules позволяют подменять запросы и ответы без изменения кода. В Charles: Tools → Rewrite. Создайте правило: поле для замены (URL, header, body) и значения. В Proxyman: Scripts → Add Script с JavaScript. Пример: замена api.production.com на api.staging.com, добавление токена в заголовок. Типовая настройка — 2-3 правила на проект — занимает 1-2 часа.

Процесс работы

  1. Анализ — изучаем стек проекта: сетевой слой (Alamofire, URLSession, Retrofit, OkHttp), наличие certificate pinning, необходимость WebSocket.
  2. Настройка прокси — установка сертификата на все устройства (iOS, Android, эмуляторы), конфигурация Wi-Fi proxy, включение SSL Proxying для нужных доменов.
  3. Обход pinning — подготовка debug-сборки с условным доверием. Если pinning на библиотеке (например, TrustKit), меняем конфигурацию.
  4. Rewrite правила — настройка подмены URL, заголовков или ответов для тестирования specific сценариев.
  5. Документация и обучение — фиксируем процесс для команды, проводим 1-часовой вебинар.

Что входит в работу?

  • Полная документация по настройке прокси и обходу certificate pinning.
  • Доступы к прокси-серверу (локальный или удалённый) с настроенными правилами.
  • Обучение команды: 1-часовой вебинар с демонстрацией ключевых сценариев.
  • Техническая поддержка в течение недели после настройки.

Типичные сценарии использования

  • Проверка заголовков авторизации (Bearer token, API key) — 2-3 запроса.
  • Отладка multipart/form-data загрузки файлов.
  • Тестирование при медленном соединении (throttling в Charles: Proxy → Throttle Settings, профиль Edge).
  • Проверка обработки ошибочных HTTP-ответов (Map Local → подставить 500 ответ).
  • Отладка GraphQL запросов и WebSocket фреймов (в Proxyman — live view).

Это экономит до 40% времени QA-инженеров. На типовом проекте с 10 экранами и 5 API-запросами — 2-4 часа в неделю, до 16 часов в месяц. Закажите настройку — получите консультацию по выбору инструмента и интеграцию в ваш CI/CD.

Типичные проблемы и их решения

Проблема Причина Решение
Трафик не виден SSL Proxying не включён Добавить * в список SSL Proxying
Certificate pinning блокирует Приложение проверяет сертификат Обойти через debug-конфиг
Замедление приложения Throttling слишком жёсткий Отключить или выставить высокий bandwidth
Ошибка при установке сертификата iOS 15+ требует ручного доверия Settings → General → About → Certificate Trust Settings → включить сертификат

Свяжитесь с нами для оценки вашего проекта. Гарантируем настройку за 1 день — или вернём деньги. Получите консультацию и выберите оптимальный инструмент под ваш стек.