Developer mode в iOS

Developer mode в iOS

t.me/qa_chillout

В этой статье разберем режим разработчика (Developer Mode) в iOS, который предоставляет доступ к множеству инструментов и настроек, которые предназначены для разработки, тестирования и отладки приложений. Основные функции и предназначение режима разработчика включают:

  • тестирование и отладка,
  • настройка сети,
  • диагностика и логирование,
  • тестирование специфических функций (NFC Pass Key Optional, AirPlay Suggestions, WidgetKit Developer Mode)
  • и многое другое.


Но обо всем по порядку. Для начала, разберемся как включить режим на iOS 17.

  • Подключите ваше устройство к Xcode.
  • Откройте Настройки на вашем девайсе.
  • Перейдите в Конфиденциальность и безопасность > Режим разработчика.
  • Включите Режим разработчика и подтвердите действие.
  • После включения режима разработчика на устройстве появится всплывающее окно с подтверждением. Нажмите Перезапустить для перезагрузки устройства.
  • После перезагрузки устройства появится еще одно всплывающее окно с подтверждением включения режима разработчика. Нажмите Включить.


Developer mode активирован и можно переходить к его изучению.


Enable UI Automation — это настройка, которая позволяет включить автоматизацию пользовательского интерфейса. Эта функция необходима для использования различных инструментов автоматизированного тестирования, таких как Xcode UI Test, Appium, и других автоматизационных фреймворков.

Hang Detection — в режиме этой настройки iOS контролирует отзывчивость в установленном приложении и создает диагностику, чтобы помочь идентифицировать части приложения, которые тратят слишком много времени в основном потоке после первоначального отображения. Эта функция поддерживает приложения, установленные напрямую через Xcode и подписанные сертификатом разработчика, бета-версии приложений, установленные с помощью TestFlight. Обнаружение зависаний доступно только при наличии режима разработчика на устройстве.

Network Link Conditioner (NLC) — это инструмент, который позволяет симулировать различные условия сети для тестирования приложений. При включенном NLC разработчик может настроить различные параметры сети, такие как скорость соединения, задержка и потеря пакетов, чтобы эмулировать различные условия сети, такие как медленное подключение или ограниченная пропускная способность.

С помощью Network Link Conditioner можно проверить, как приложение ведет себя в условиях сети с низкой пропускной способностью, высокой задержкой или с большим количеством потерянных пакетов.

Multipath Networking — это функция, необходимая для обеспечения более надежного и эффективного подключения к интернету за счет использования нескольких сетевых интерфейсов одновременно. Это позволяет устройству использовать несколько доступных сетевых соединений (например, Wi-Fi и сотовая сеть) одновременно для повышения пропускной способности, уменьшения задержек и обеспечения непрерывного подключения к сети даже при потере одного из соединений.

В режиме разработчика iOS можно использовать функцию Multipath Networking для тестирования и оптимизации приложений, которые зависят от постоянного и стабильного подключения к интернету. Есть несколько дефолтных режимов:

  • Default – позволяет iOS выбирать наиболее подходящий маршрут для передачи данных в зависимости от текущих условий сети и требований приложения.
  • Handover – используется для обработки ситуаций, когда устройство переключается с одного интерфейса сети на другой, например, с Wi-Fi на сотовую сеть или обратно. Он обеспечивает бесперебойный переход между различными сетевыми интерфейсами без потери соединения.
  • Interactive – оптимизирован для интерактивных приложений, таких как видеозвонки или онлайн-игры, где низкая задержка и высокая пропускная способность критичны для качества пользовательского опыта.

L4S (Low Latency, Low Loss, Scalable throughput или L4S. L4S) — это экспериментальная технология передачи данных, которая направлена на улучшение качества обслуживания (QoS) в сетях Интернета. Она предлагает баланс между низкой задержкой, низкой потерей данных и масштабируемой пропускной способностью.

Основные характеристики L4S включают:

  1. Низкая задержка – L4S стремится минимизировать время задержки при передаче данных в сети. Это особенно важно для приложений, где даже небольшая задержка может оказать существенное влияние на качество обслуживания, такие как видеозвонки и онлайн-игры.
  2. Низкая потеря данных – L4S также стремится снизить вероятность потери пакетов данных в сети. Это помогает обеспечить непрерывную передачу данных без необходимости повторной отправки пакетов из-за потери.
  3. Масштабируемая пропускная способность – L4S обеспечивает возможность увеличения пропускной способности сети при необходимости, чтобы обеспечить достаточное качество обслуживания для всех подключенных устройств и приложений.

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

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

Associated domains development — позволяет приложению взаимодействовать с веб-сайтами и другими онлайн-ресурсами путем установки ассоциированных доменов. Это позволяет приложению загружать и открывать определенные ссылки или контент напрямую из приложения без необходимости перехода в веб-браузер. Эта функция может быть полезна для приложений, которые интегрируются с веб-сайтами или используют онлайн-сервисы.

Diagnostics — позволяет провести анализ введенного URL для определения его пригодности для использования с Universal Links. Универсальные ссылки позволяют приложениям открываться по определенным URL-адресам, и анализ таких URL поможет заранее протестировать работу таких ссылок в приложении.



Run throughput test — запуск теста пропускной способности сети. Этот тест предназначен для измерения скорости передачи данных через сеть, такую как Wi-Fi или мобильная сеть. Запуск этого теста позволяет оценить производительность сети и выявить ее пропускную способность.

Fast app termination — ускоряет процесс завершения работы приложения. При ее использовании, когда вы закрываете приложение, оно завершается немедленно без ожидания завершения всех текущих операций или сохранения данных. Это может быть полезно в процессе отладки и тестирования приложений, чтобы быстро перезапускать их и проверять изменения без лишнего ожидания.

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

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

Allow HTTP Services — разрешает приложениям использовать небезопасные HTTP-соединения вместо HTTPS. Используется в основном для тестирования и отладки, когда HTTPS может быть ненужным или неудобным. Важно помнить, что для публичных релизов рекомендуется использовать только HTTPS для обеспечения безопасности данных.

Disable Rate Limiting — отключает ограничения на количество запросов к серверу за определенный период. Полезно для тестирования производительности и поведения приложений при высокой нагрузке без ограничений на количество запросов.

NFC Pass Key Optional — позволяет пропустить использование ключа NFC для определенных функций или операций. Это может быть полезно для тестирования и отладки функций, связанных с NFC, особенно если у разработчика нет доступа к NFC-ключу в определенных ситуациях.


AirPlay Suggestions — включает предложения AirPlay для мультимедийного контента. Это может быть полезно для тестирования функций, связанных с AirPlay, чтобы убедиться, что приложения правильно взаимодействуют с устройствами AirPlay и предлагают пользователям соответствующие возможности для трансляции контента.

Use Route Sharing Policy — опция позволяет изменить политику использования маршрутов для аудио и видео. Полезно для тестирования и настройки поведения приложения при переключении аудио и видеопотоков между различными устройствами и маршрутами.

Reset Local Data on Next Launch — очищает все локальные данные приложения при следующем запуске. Полезно для тестирования и отладки, чтобы начать с чистого состояния данных приложения, особенно при проверке начальных условий или при тестировании процессов регистрации и первоначальной настройки.

Playable Content API (Framework Testing) — включает API тестирования воспроизводимого контента. Это API позволяет разработчикам интегрировать и тестировать функции воспроизведения контента, такие как музыка, видео и другие мультимедийные элементы, в своих приложениях.

TV Provider Testing — предоставляет возможности для тестирования интеграции с провайдерами ТВ. Полезно для проверки работы функций, связанных с аутентификацией и авторизацией через ТВ-провайдеров, что позволяет пользователям получать доступ к контенту, предоставляемому их ТВ-провайдерами.

TV App Testing — опция для тестирования функций и поведения приложений для ТВ. Позволяет разработчикам тестировать и отлаживать свои приложения для Apple TV, чтобы убедиться, что они работают корректно на устройствах этой платформы.


Display Recent Shortcuts — отображение недавно использованных ярлыков (Shortcuts) в виджете. Полезно для тестирования, чтобы убедиться, что виджет корректно отображает и обновляет список последних действий пользователя, связанных с ярлыками.

Display Upcoming Media — отображение предстоящих медиа (например, запланированных воспроизведений или событий) в виджете. Это помогает тестировать, как виджет интегрируется с медиаприложениями и отображает информацию о предстоящих медиа событиях.

Display Donations on Lock Screen — отображение "donations" (предложений действий, сделанных приложением) на экране блокировки. Полезно для тестирования виджетов и функций быстрого доступа, чтобы убедиться, что они правильно отображаются на экране блокировки и предлагают пользователям быстрый доступ к часто используемым действиям или функциям.

Siri Event Suggestion Testing — функции, связанные с тестированием предложений событий Siri (например, создание напоминаний, предложение каких-то действий и т.д.):

  1. Allow Any Domain — разрешает Siri предлагать события из любого домена. Это полезно для тестирования, чтобы убедиться, что Siri может распознавать и предлагать создавать события, включая те, которые не ограничены конкретными доменами.
  2. Allow Unverified Sources — разрешает Siri предлагать события из непроверенных источников. Это позволяет разработчикам тестировать, как Siri обрабатывает данные из источников, которые не прошли проверку, и как это влияет на предложения событий пользователям.

MIDI-CI — это протокол, связанный с музыкальными инструментами и интерфейсами. Включает поддержку MIDI Capability Inquiry (MIDI-CI), что позволяет MIDI-устройствам обмениваться информацией о своих возможностях и настройках. Полезно для разработчиков музыкального ПО и оборудования, чтобы тестировать и обеспечивать совместимость устройств и приложений с расширенными функциями MIDI.

Pre-release Beta Firmware — разрешает установку и тестирование предварительных версий прошивок. Это необходимо для тестирования новых функций и исправлений в прошивках до их официального выпуска, позволяя разработчикам выявлять и устранять проблемы до выпуска обновлений пользователям.

SSO (Single Sign-On) — это система единого входа. Включает тестирование и настройку функций единого входа. Это полезно для разработчиков, работающих с корпоративными или образовательными системами, чтобы тестировать интеграцию и работу SSO в своих приложениях.

Show Graphics HUD (Heads-Up Display) — это наложение, отображающее информацию поверх основного интерфейса. Включает отображение графического HUD на экране. Это помогает разработчикам визуализировать и отлаживать графическую производительность их приложений, предоставляя информацию о текущем состоянии графической системы, таком как частота кадров, загрузка GPU и другие метрики.

Log Graphics Performance — включает логирование производительности графики. Полезно для разработчиков, чтобы собирать и анализировать данные о графической производительности приложений. Это помогает выявлять узкие места и оптимизировать графическую часть приложений для лучшей производительности и пользовательского опыта.


Обсудить статью, узнать больше можно в телеграм канале «Тестировщики нужны».

Report Page