Статьи

iOS Симулятор Советы и хитрости

Этот быстрый совет познакомит вас с некоторыми из мощных функций, доступных для тестирования и отладки приложений с помощью Xcode и iOS Simulator.


В течение многих лет разработчики боролись с отладкой приложений на основе CoreLocation в симуляторе из-за отсутствия встроенной поддержки симулятора для пользовательских координат. Хотя такие проекты, как FTLocationSimulator, оказали большую помощь, многие из нас по-прежнему завидовали разработчикам Android, которые могли легко определить местоположение симулятора Android с помощью встроенных инструментов DDMS .

К счастью, те времена тихой зависти давно прошли. С выпуском Xcode 4.2 разработчики iOS смогли смоделировать расположение устройства по умолчанию для ряда городов мира. Этот подход все еще существует, и его можно сделать, выбрав «Редактировать схему»:

Настройка местоположения по умолчанию

Затем перейдите на вкладку «Параметры» всплывающего окна:

Настройка местоположения по умолчанию

Тем не менее, последние версии симулятора iOS упростили изменение симулируемого местоположения, и теперь вы можете сделать это во время выполнения.

После того, как вы запустили симулятор, выбрав « Отладка»> «Расположение», вы получите следующие пункты меню:

Варианты расположения симулятора

Как вы можете видеть, теперь вы можете легко установить свои собственные координаты, используя опцию «Custom Location»:

Настройка местоположения симулятора

Конечно, для этого необходимо знать точные координаты местоположения, которое вы хотите смоделировать, а не только адрес улицы. Процесс генерирования координат широты и долготы по адресу называется геокодированием , и есть ряд бесплатных веб-сайтов и приложений для iOS, которые будут генерировать координаты по адресу улицы для вас. Стоит упомянуть бесплатное iOS-приложение Geocode Something, а также веб-сайт geocoder.us, и это гибридное приложение геокодера является быстрым и простым способом получения координат непосредственно из Google Maps.

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

Выбор «Apple» в меню «Расположение» установит текущее местоположение на Apple HQ на 1 Infinite Loop, Купертино, Калифорния. Для пользователей ранних версий Xcode вы узнаете, что это единственное место, изначально поддерживаемое симулятором.

Купертино, Калифорния

Если вы выберете опцию «City Bicycle Ride», платформа CoreLocation начнет генерировать координаты, которые следуют по заданному пути, близкому к Apple HQ. Опция велосипеда будет вызывать обновления со скоростью около 5-7 метров в секунду.

Опция «City Run» аналогична настройке «City Bicycle Ride», за исключением того, что обновления происходят с настройкой скорости трекинга около 3-4 метров в секунду.

Опция «Автострада» отличается от предыдущих двух и тем, и другим: и пройденным путем, и скоростью в метрах в секунду. Трасса движется вдоль шоссе Junipero Serra, расположенного к северу от Apple HQ, и скорость, как правило, составляет от 20 до 35 метров в секунду.

Имитированный Автострада

Теоретически, эта опция должна генерировать координаты, привязанные к местоположениям Apple Store. Однако, с iOS 6.0 Simulator и Xcode 4.5, эта опция, кажется, сильно сломана. В моем опыте проверки этого, кажется, что координаты всегда начинаются примерно с 33,7718 N, 112,9031 W, а затем постепенно увеличиваются как на северном, так и на западном показаниях, перемещая текущее местоположение на диагоальном пути в никуда. Я отправил это в виде отчета об ошибке в Apple, поэтому, если у других возникнет такая же проблема, надеюсь, она скоро будет решена!

Поскольку приложение Apple Maps может работать в симуляторе, протестировать любой из перечисленных выше вариантов просто. Просто запустите симулятор iOS, как обычно, установите симулированное местоположение, а затем запустите приложение «Карты».

С iOS 6 SDK теперь вы можете запускать приложения, которые используют Карты прямо в симуляторе!


Еще одной замечательной особенностью iOS Simulator является возможность размещать анимации в замедленном режиме с помощью пункта меню « Отладка> Переключить медленные анимации» .

Настройка местоположения симулятора

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

Возможно, более практичным использованием этой функции является замедление анимации, возникающей при вращении устройства, для полировки анимации изменения ориентации (см. Сессию 517 из WWDC 2012 для получения дополнительной информации о том, как можно полировать анимацию ориентации).


Опция меню « Отладка» также предоставляет невероятно полезную возможность раскрашивать изображения в реальном времени:

Раскраска в реальном времени

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

Это полезная функция для отладки ваших собственных приложений, а также она может быть полезна для изучения приложений по умолчанию на симуляторе. На следующем снимке экрана показано приложение «Карты» и приложение «Passbook» с выбранным параметром «Цветовые смешанные слои»:

Цвет смешанных слоев

Хотя ничто не заменит опыт тестирования приложений на реальном оборудовании, симулятор прошел долгий путь за последние несколько лет с эмуляцией реальных событий. Фактически, некоторые события, такие как переключение строки состояния «in-call» или генерирование предупреждений в памяти, вероятно, легче отладить в симуляторе, чем на реальном устройстве.

Экран блокировки симулятора
Экран симуляции замка

При просмотре меню « Оборудование» будут показаны следующие параметры события:

  • Поверните влево
  • Повернуть вправо
  • Жест встряхивания
  • Нажмите кнопку Home
  • Блокировка экрана Нажмите
  • Имитация памяти Предупреждение
  • Переключить строку состояния In-Call
  • Имитация аппаратной клавиатуры
  • ТВ-выход

Большинство из них говорят сами за себя, но некоторые заслуживают дальнейшего внимания.

Опция «Симулировать аппаратную клавиатуру» предназначена главным образом для отладки приложений iPad, где пользователь может подключить физическую клавиатуру через Bluetooth или разъем док-станции. Тестирование с опцией аппаратной клавиатуры должно быть важной частью бета-тестирования приложения для iPad.

Параметр «ТВ-выход» позволяет имитировать соединения VGA / HDMI, создавая новое окно, разрешение которого может быть от 640х480 до 1920х1080 (т. Е. 1080p).


Самый простой способ добавить фотографии в симулятор iOS — просто перетащить их по отдельности из окна OS X Finder в окно симулятора.

Добавление фотографий в симулятор iOS

Однако, если вам нужно добавить много разных фотографий для тестирования, этот процесс быстро становится неэффективным. Когда вам нужно добавить много изображений одновременно, вы можете написать простое приложение для iOS, которое может перебирать ваш список фотографий и добавлять каждое изображение в библиотеку фотографий с UIImageWriteToSavedPhotosAlbum функции UIImageWriteToSavedPhotosAlbum . Чтобы увидеть, как это сделать, взгляните на шаг 6 в моем учебном пособии по созданию фото с помощью GPUImage .

Другой подход заключается в прямом добавлении файлов изображений в файловую систему Simulator, но шаги для этого, похоже, меняются с каждой новой версией iOS. Создание собственного импортера может быть более надежным подходом в долгосрочной перспективе ( знаете, как лучше добиться этого? Оставьте комментарий ниже! ).


Для моих собственных приложений iOS я всегда стараюсь использовать как текущую версию iOS, так и одну предыдущую версию. Однако по умолчанию Xcode включает в себя только симулятор для текущей версии iOS. К счастью, есть простой способ получить симулятор для предыдущей версии iOS.

С открытым Xcode выберите Xcode> Preferences из меню, а затем перейдите на вкладку «Загрузки». Отсюда у вас будет возможность установить предыдущие симуляторы iOS, а также пакет инструментов командной строки. Я рекомендую установить все три показанные опции:

Установка дополнительных симуляторов

После завершения установки вы сможете выбрать симуляторы iOS 5.0 / 5.1 при сборке и запуске ваших приложений.


Какие у вас есть советы или рекомендации по работе с симулятором iOS? Оставьте свой отзыв в разделе комментариев ниже!