Всем привет! Меня зовут Паша Лесюк, я работаю мобильным тестировщиком в компании Циан. В этой статье я расскажу о возможностях управления яблочными симуляторами из командной строки.
simctl — утилита командной строки для взаимодействия с симуляторами. Она очень похожа на ADB для Android, устанавливается вместе со средой разработки Xcode и используется вместе с xcrun (Xcode-раннер командной строки). Двоичный файл программы можно найти по пути:
Команда
Для просмотра подробной информации по команде нужно использовать команду
Команда
Пример UDID:
Список можно фильтровать по заголовкам:
Вместе с фильтром по заголовку можно использовать поисковый запрос или параметр
Примером поискового запроса может служить выборка по устройствам c экраном 12.9 дюймов.
Можно вывести более подробную информацию списка c помощью параметра
Можно вывести информацию в формате JSON с помощью параметра
Для создания нового симулятора используется команда
Команда
Чтобы увидеть симулятор в действии нужно запустить приложение «Simulator».
Команда
Команда
Для сброса симулятора к настройкам по умолчанию используется команда
Если нужно сбросить данные всех симуляторов, то нужно использовать команду
Изменить имя устройства можно с помощью команды
Команда
Команда
Когда работа с симулятором закончена, можно выключить его, используя команду
Для выключения всех симуляторов используется команда
В ходе работы с симуляторами может накапливаться большое количество старых устройств, многие из которых могут быть недоступны для последних версий iOS. Для их удаления используется команда
Для удаления конкретного симулятора используется команда
Для удаления всех устройств используется команда
Можно просто использовать шорткат ⌘⇧4, навести курсором на окно симулятора, нажать пробел и сделать скриншот. Но тогда на скриншоте кроме самого экрана будут видны рамки симулятора.
Для снятия скриншота только экрана используется команда
Аналогично, можно просто использовать шорткат ⌘S в открытом приложении «Simulator», скриншот окна сохранится на рабочем столе.
Также можно использовать команду
Для завершения записи нужно нажать ⌃C в окне терминала.
Команда
Также можно просто перетащить файл из Finder в окно симулятора.
Команда
Также может использоваться кастомная схема, ассоциированная с нативным приложением.
Команда
Можно легко установить приложение на симулятор если известен путь к файлу
Также можно просто перетащить приложение из Finder в окно симулятора.
Запуск приложения осуществляется с помощью команды
Команда
Значения
Значения
Пример использования:
На данный момент не все сервисы доступны для настройки. Отсутствуют уведомления, здоровье, Bluetooth и Face ID.
Команда
Формат отображения информации следующий:
Можно вывести путь к контейнерам приложения через команду
Закрытие приложения осуществляется с помощью команды
Можно удалить приложение с симулятора с помощью команды
Для отправки пуша нужно подготовить файл, который должен содержать структуру в формате JSON и сохранить его с расширением
Затем нужно дать разрешение на отправку приложению уведомлений. После этого нужно выполнить команду
Если добавить в файл параметр
Также, если указан параметр
У команды
Данная опция доступна для симуляторов с iOS от 13.0 и выше. C помощью команды
Команда
Здесь используется интерфейс
Команда
В iOS существует пять уровней логов:
Для того, чтобы просмотреть вывод логов с симулятора в командной строке, необходимо выполнить следующую команду:
По умолчанию вывод логов будет включать в себя уровни default, error и fault. Для использования уровней info и debug нужно использовать аргумент
Также можно фильтровать логи. Например, по конкретному приложению или по типу ивентов и сообщений.
Чтобы выключить вывод логов нужно нажать ⌃C в окне терминала.
C помощью операции
С помощью команды
Журнал будет включать в себя:
В журнале будет содержаться конфиденциальная информация, поэтому с этими данными нужно быть осторожным.
После генерации журнала будет открыта папка с архивом, содержащим всю информацию.
В заключение хотелось бы поделиться еще парой полезных команд для работы с симуляторами.
Позволяет использовать окно симулятора в полноэкранном режиме macOS. Например, можно открыть отдельный рабочий стол с Xcode и симулятором.
Отображает тапы на симуляторе. Удобно при записи видео.
P. S.
Если вам интересна тема тестирования, то приглашаю вас подписаться на мой блог в телеграме.
simctl — утилита командной строки для взаимодействия с симуляторами. Она очень похожа на ADB для Android, устанавливается вместе со средой разработки Xcode и используется вместе с xcrun (Xcode-раннер командной строки). Двоичный файл программы можно найти по пути:
/Applications/Xcode.app/Contents/Developer/usr/bin/simctl
Содержание
Работа с объектами устройств
Просмотр списка доступных команд и информации по ним
Просмотр списка доступных устройств, сред выполнения, устройств и пар устройств
Создание нового устройства
Запуск устройства
Апгрейд устройства
Клонирование устройства
Очистка данных и настроек устройства
Переименование устройства
Вывод переменных среды устройства
Проверка состояния загрузки устройства
Выключение устройства
Удаление устройств
Работа с контентом устройств
Снятие скриншота и видео с устройства
Добавление медиа на устройство
Открытие URL на устройстве
Управление сертификатами устройства
Установка приложения на устройство
Запуск приложения на устройстве
Предоставление, отзыв и сброс разрешений приложения
Отображение информации о приложении
Отображение пути к контейнерам установленного приложения
Закрытие приложения на устройстве
Удаление приложения с устройства
Симуляция отправки пуш-уведомления
Изменение и очистка статус-бара устройства
Установка темной или светлой темы
Работа с логами и внутренними механизмами устройств
Выполнение указанной операции на устройстве
Включение и отключение подробного логирования на устройстве
Отображение логов с устройства
Сбор диагностической информации и логов
Заключение
Включение и отключение полноэкранного режима окна симулятора
Включение и отключение отображения нажатий на устройстве
Просмотр списка доступных команд и информации по ним
Просмотр списка доступных устройств, сред выполнения, устройств и пар устройств
Создание нового устройства
Запуск устройства
Апгрейд устройства
Клонирование устройства
Очистка данных и настроек устройства
Переименование устройства
Вывод переменных среды устройства
Проверка состояния загрузки устройства
Выключение устройства
Удаление устройств
Работа с контентом устройств
Снятие скриншота и видео с устройства
Добавление медиа на устройство
Открытие URL на устройстве
Управление сертификатами устройства
Установка приложения на устройство
Запуск приложения на устройстве
Предоставление, отзыв и сброс разрешений приложения
Отображение информации о приложении
Отображение пути к контейнерам установленного приложения
Закрытие приложения на устройстве
Удаление приложения с устройства
Симуляция отправки пуш-уведомления
Изменение и очистка статус-бара устройства
Установка темной или светлой темы
Работа с логами и внутренними механизмами устройств
Выполнение указанной операции на устройстве
Включение и отключение подробного логирования на устройстве
Отображение логов с устройства
Сбор диагностической информации и логов
Заключение
Включение и отключение полноэкранного режима окна симулятора
Включение и отключение отображения нажатий на устройстве
Работа с объектами устройств
Просмотр списка доступных команд и информации по ним
Команда
simctl
без подкоманд выводит в консоль список всех доступных подкоманд (далее будет использоваться термин «команда»).$ xcrun simctl
Для просмотра подробной информации по команде нужно использовать команду
help
с названием искомой команды.$ xcrun simctl help list
Просмотр списка доступных устройств, сред выполнения, устройств и пар устройств
Команда
list
выводит список всех установленных устройств и окружений. Рядом с каждым устройством будет отображен UDID (уникальный идентификатор устройства), который можно прокидывать в некоторые подкоманды simctl.$ xcrun simctl list
Пример UDID:
4599F586-F482-4E9C-92A7-8AC4EF348BD9
Список можно фильтровать по заголовкам:
devices
, devicetypes
, runtimes
, pairs
.$ xcrun simctl list devices
== Devices ==
-- iOS 11.0 --
iPhone 7 (422566D6-AD4C-40E5-AC64-233043A00814) (Shutdown)
-- iOS 13.4 --
iPhone 8 (CB87B315-F01A-41AA-9C85-6FE24E5A66B9) (Shutdown)
Вместе с фильтром по заголовку можно использовать поисковый запрос или параметр
available
, который выведет список всех доступных пунктов.$ xcrun simctl list devices available
Примером поискового запроса может служить выборка по устройствам c экраном 12.9 дюймов.
$ xcrun simctl list devicetypes 12.9
== Device Types ==
iPad Pro (12.9-inch) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro)
iPad Pro (12.9-inch) (2nd generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---2nd-generation-)
iPad Pro (12.9-inch) (3rd generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---3rd-generation-)
iPad Pro (12.9-inch) (4th generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---4th-generation-)
Можно вывести более подробную информацию списка c помощью параметра
-v
.$ xcrun simctl list -v devices
== Devices ==
-- iOS 11.0 (15A8401) [/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 11.0.simruntime] --
iPhone 7 (7B68E927-161C-440C-AABE-654CD96E8694) (Shutdown)
-- iOS 13.3 (17C45) [/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime] --
iPhone 8 (F3909F6E-E227-4BD7-939F-D3D05B1B8AAD) (Shutdown)
Можно вывести информацию в формате JSON с помощью параметра
-j
или --json
.$ xcrun simctl list -j -v devices
{
"devices" : {
"com.apple.CoreSimulator.SimRuntime.iOS-13-3" : [
{
"dataPath" : "\/Users\/pavel\/Library\/Developer\/CoreSimulator\/Devices\/9EA47EEB-F19F-44EE-9854-EA06BEB8FBD1\/data",
"logPath" : "\/Users\/pavel\/Library\/Logs\/CoreSimulator\/9EA47EEB-F19F-44EE-9854-EA06BEB8FBD1",
"udid" : "9EA47EEB-F19F-44EE-9854-EA06BEB8FBD1",
"isAvailable" : true,
"deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-7-Plus",
"state" : "Shutdown",
"name" : "iPhone-7-Plus"
},
{
"dataPath" : "\/Users\/pavel\/Library\/Developer\/CoreSimulator\/Devices\/F3909F6E-E227-4BD7-939F-D3D05B1B8AAD\/data",
"logPath" : "\/Users\/pavel\/Library\/Logs\/CoreSimulator\/F3909F6E-E227-4BD7-939F-D3D05B1B8AAD",
"udid" : "F3909F6E-E227-4BD7-939F-D3D05B1B8AAD",
"isAvailable" : true,
"deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-8",
"state" : "Shutdown",
"name" : "iPhone 8"
}
],
...
Создание нового устройства
Для создания нового симулятора используется команда
create
, после которой указываются имя устройства, его тип и среда (эти данные есть в выводе команды list
). После выполнения команды отобразится UDID созданного симулятора.$ xcrun simctl create iPhone-7-Plus com.apple.CoreSimulator.SimDeviceType.iPhone-7-Plus com.apple.CoreSimulator.SimRuntime.iOS-13-4
9EA47EEB-F19F-44EE-9854-EA06BEB8FBD1
Запуск устройства
Команда
boot
запускает устройство с указанным UDID
, делая его доступным для взаимодействия.$ xcrun simctl boot CB87B315-F01A-41AA-9C85-6FE24E5A66B9
️После запуска устройства можно передавать командуbooted
вместоUDID
. Если запущено несколько устройств, то simctl выберет одно из них.
Чтобы увидеть симулятор в действии нужно запустить приложение «Simulator».
$ open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/
Апгрейд устройства
Команда
upgrade
позволяет повысить версию среды устройства до необходимой.$ xcrun simctl upgrade 422566D6-AD4C-40E5-AC64-233043A00814 com.apple.CoreSimulator.SimRuntime.iOS-13-4
Клонирование устройства
Команда
clone
позволяет клонировать существующее устройство, копируя его тип и среду.$ xcrun simctl clone booted NewPhone
Очистка данных и настроек устройства
Для сброса симулятора к настройкам по умолчанию используется команда
erase
. Перед очисткой симулятора его нужно выключить, иначе возникнет ошибка.$ xcrun simctl erase booted
Если нужно сбросить данные всех симуляторов, то нужно использовать команду
erase all
.$ xcrun simctl erase all
Переименование устройства
Изменить имя устройства можно с помощью команды
rename
.$ xcrun simctl rename booted MyiPhone
Вывод переменных среды устройства
Команда
getenv
позволяет выводить значения переменных среды устройства. Например, встроенная переменная симулятора SIMULATOR_SHARED_RESOURCES_DIRECTORY
указывает на путь, где хранятся данные симулятора.$ xcrun simctl getenv booted SIMULATOR_SHARED_RESOURCES_DIRECTORY
/Users/pavel/Library/Developer/CoreSimulator/Devices/F3909F6E-E227-4BD7-939F-D3D05B1B8AAD/data
Проверка состояния загрузки устройства
Команда
bootstatus
позволяет убедиться в том, что устройство загружено и готово к работе. Имеет три необязательных ключа:-b
— загружает указанный симулятор, если он не загружен.-d
— отображает информацию о миграции данных.-c
— постоянно отслеживает состояние загрузки и выключения.
$ xcrun simctl bootstatus booted
$ xcrun simctl bootstatus booted -c
Выключение устройства
Когда работа с симулятором закончена, можно выключить его, используя команду
shutdown
.$ xcrun simctl shutdown booted
Для выключения всех симуляторов используется команда
shutdown all
.$ xcrun simctl shutdown all
Удаление устройств
В ходе работы с симуляторами может накапливаться большое количество старых устройств, многие из которых могут быть недоступны для последних версий iOS. Для их удаления используется команда
delete unavailable
.$ xcrun simctl delete unavailable
Для удаления конкретного симулятора используется команда
delete
.$ xcrun simctl delete booted
Для удаления всех устройств используется команда
delete all
.$ xcrun simctl delete all
Работа с контентом устройств
Снятие скриншота и видео с устройства
Можно просто использовать шорткат ⌘⇧4, навести курсором на окно симулятора, нажать пробел и сделать скриншот. Но тогда на скриншоте кроме самого экрана будут видны рамки симулятора.
Для снятия скриншота только экрана используется команда
io
в связке со screenshot
. Можно сохранять изображения в формате .png
, .tiff
, .bmp
, .gif
и .jpeg
.$ xcrun simctl io booted screenshot ~/Pictures/app-screenshot.png
Аналогично, можно просто использовать шорткат ⌘S в открытом приложении «Simulator», скриншот окна сохранится на рабочем столе.
Также можно использовать команду
io
в связке с recordVideo
для записи видео взаимодействия с экраном симулятора. Можно сохранять видео в формате .mov
, .h264
, .mp4
и .fmp4
.$ xcrun simctl io booted recordVideo ~/Movies/app-preview.mp4
Для завершения записи нужно нажать ⌃C в окне терминала.
Добавление медиа на устройство
Команда
addmedia
используется для добавления фото или видео на симулятор.$ xcrun simctl addmedia booted ~/Pictures/test.png
$ xcrun simctl addmedia booted ~/Pictures/test.gif
$ xcrun simctl addmedia booted ~/Pictures/test.mp4
Также можно просто перетащить файл из Finder в окно симулятора.
Открытие URL на устройстве
Команда
openurl
открывает указанный URL
на симуляторе.$ xcrun simctl openurl booted "https://www.google.com/"
Также может использоваться кастомная схема, ассоциированная с нативным приложением.
$ xcrun simctl openurl booted maps://
Управление сертификатами устройства
Команда
keychain
позволяет добавлять сертификаты в доверенное корневое хранилище или keychain, а также сбрасывать keychain.$ xcrun simctl keychain booted add-root-cert ~/my-selfsigned.cer
$ xcrun simctl keychain booted add-cert ~/my-selfsigned.cer
$ xcrun simctl keychain booted reset
Установка приложения на устройство
Можно легко установить приложение на симулятор если известен путь к файлу
.app
. Для этого используется команда install
.$ xcrun simctl install booted ~/Циан.app
Также можно просто перетащить приложение из Finder в окно симулятора.
Перечень opensource-приложений для iOS можно найти тут.
Запуск приложения на устройстве
Запуск приложения осуществляется с помощью команды
launch
и указанием bundle ID.$ xcrun simctl launch booted ru.cian.mobile
Как узнать bundle ID описано тут.
Предоставление, отзыв и сброс разрешений приложения
Команда
privacy
может предоставлять, отзывать и сбрасывать разрешения приложения.$ xcrun simctl privacy <device> <action> <service> <bundle ID>
Значения
action
(действия) могут быть следующие:- grant — предоставляет доступ к сервису. Неободим bundle ID.
- revoke — запрещает доступ к сервису. Необходим bundle ID.
- reset — сбрасывает доступ к сервису. bundle ID опционален.
Значения
service
(службы) могут быть следующие:- all — применяет действие ко всем службам.
- calendar — предоставляеть доступ к календарю.
- contacts-limited — предоставляет доступ к основной контактной информации.
- contacts — предоставляет полный доступ к контактной информации.
- location — предоставляет доступ к службам определения местоположения при использовании приложения.
- location-always — предоставляет доступ к службам определения местоположения в любое время.
- photos-add — предоставляет доступ на добавление фотографий в библиотеку фотографий.
- photos — предоставляет полный доступ к библиотеке фотографий.
- media-library — предоставляет доступ к медиа-библиотеке.
- microphone — предоставляет доступ к микрофону.
- motion — предоставляет доступ к фитнес-данным.
- reminders — предоставляет доступ к напоминаниям.
- siri — предоставляет возможность использовать приложение вместе с Siri.
Пример использования:
$ xcrun simctl privacy booted grant photos ru.cian.mobile
$ xcrun simctl privacy booted grant location ru.cian.mobile
$ xcrun simctl privacy booted revoke all ru.cian.mobile
На данный момент не все сервисы доступны для настройки. Отсутствуют уведомления, здоровье, Bluetooth и Face ID.
Отображение информации о приложении
Команда
appinfo
выводит информацию о приложении.$ xcrun simctl appinfo booted ru.cian.mobile
Формат отображения информации следующий:
{
ApplicationType = User;
Bundle = <PATH_TO_APP_FILE>;
BundleContainer = <PATH_TO_APP_FILE_FOLDER>;
CFBundleDisplayName = "Циан";
CFBundleExecutable = "Циан";
CFBundleIdentifier = "ru.cian.mobile";
CFBundleName = "Циан";
CFBundleVersion = 1;
DataContainer = <PATH_TO_DATA_FOLDER>;
GroupContainers = {
<GROUP_CONTAINER_NAME> = <PATH_TO_GROUP_CONTAINER_FOLDER>;
};
Path = <PATH_TO_APP_FILE>;
SBAppTags = (
);
}
Отображение пути к контейнерам установленного приложения
Можно вывести путь к контейнерам приложения через команду
get_app_container
с указанием bundle ID. У команды есть несколько опций для указания типа контейнера:app
указывает на расположение самого приложения и используется по умолчанию.
$ xcrun simctl get_app_container booted ru.cian.mobile
$ xcrun simctl get_app_container booted ru.cian.mobile app
data
указывает на расположение данных приложения.
$ xcrun simctl get_app_container booted ru.cian.mobile data
groups
указывает на расположение группы приложений. Если групп несколько, то нужно использовать имя искомой группы.
$ xcrun simctl get_app_container booted ru.cian.mobile groups
$ xcrun simctl get_app_container booted ru.cian.mobile group.ru.cian.mobile.widget
Закрытие приложения на устройстве
Закрытие приложения осуществляется с помощью команды
terminate
и указанием bundle ID.$ xcrun simctl launch terminate ru.cian.mobile
Удаление приложения с устройства
Можно удалить приложение с симулятора с помощью команды
uninstall
, используя bundle ID.$ xcrun simctl uninstall booted ru.cian.mobile
Симуляция отправки пуш-уведомления
Для отправки пуша нужно подготовить файл, который должен содержать структуру в формате JSON и сохранить его с расширением
.apns
(Apple Push Notification service):{
"aps": {
"alert": {
"title": "Tester on Steroids",
"body": "About mobile apps testing"
},
"badge": 3,
"sound": "default"
}
}
Затем нужно дать разрешение на отправку приложению уведомлений. После этого нужно выполнить команду
push
с указанием устройства, bundle ID и пути до файла .apns
.$ xcrun simctl push booted ru.cian.mobile ~/Documents/mocks/push.apns
Если добавить в файл параметр
"Simulator Target Bundle"
, то необходимость указывать каждый раз bundle ID отпадает.{
"aps": {
"alert": {
"title": "Tester on Steroids",
"body": "About mobile apps testing"
},
"badge": 3,
"sound": "default"
},
"Simulator Target Bundle": "ru.cian.mobile"
}
$ xcrun simctl push booted ~/Documents/mocks/push.apns
Также, если указан параметр
"Simulator Target Bundle"
, то файл можно просто перетащить в окно симулятора.Изменение и очистка статус-бара устройства
У команды
status_bar
есть три подкоманды:override
принимает параметры для элементов статус-бара и меняет их в зависимости от значений.
$ xcrun simctl status_bar booted override --time 10:30 --dataNetwork wifi --wifiMode active --wifiBars 2 --cellularMode active --cellularBars 3 --operatorName @tester_on_steroids --batteryState charging --batteryLevel 75
list
выводит значения перезаписанных параметров.
$ simctl status_bar booted list
Current Status Bar Overrides:
=============================
Time: 10:30
DataNetworkType: 1
Cell Mode: 3, Cell Bars: 3
Operator Name: @tester_on_steroids
Battery State: 1, Battery Level: 75, Not Charging: 1
clear
очищает перезаписанный статуc-бар.
$ simctl status_bar booted clear
Установка темной или светлой темы
Данная опция доступна для симуляторов с iOS от 13.0 и выше. C помощью команды
ui appearance
можно поменять тему устройства на темную или светлую.$ xcrun simctl ui booted appearance dark
$ xcrun simctl ui booted appearance light
Работа с логами и внутренними механизмами устройств
Выполнение указанной операции на устройстве
Команда
spawn
создает указанный процесс на симуляторе.$ xcrun simctl spawn booted defaults write ru.cian.mobile ResetDatabase -bool YES
Здесь используется интерфейс
defaults
, в котором флагу ResetDatabase
устанавливается значение YES
. Это удобный способ менять пользовательские настройки до запуска приложения.Включение и отключение подробного логирования на устройстве
Команда
logverbose
позволяет включать и отключать подробное логирование на устройстве. Для того, чтобы изменения вступили в силу, нужно перезапустить симулятор.$ simctl logverbose booted enable
$ simctl logverbose booted disable
Отображение логов с устройства
В iOS существует пять уровней логов:
- Default. Используется для сбора информации о вещах, которые могут привести к сбою.
- Info. Полезная, но необязательная информация для устранения ошибок.
- Debug. Информация, которая может быть полезна во время разработки или устранения конкретной проблемы. Отслеживание debug-логов предназначено для использования на стадии разработки, а не на стадии эксплуатации программы конечными пользователями.
- Error. Используется для сбора информации об ошибках процесса.
- Fault. Используется для сбора информации об ошибках системного уровня или мульти-процессов.
Для того, чтобы просмотреть вывод логов с симулятора в командной строке, необходимо выполнить следующую команду:
$ xcrun simctl spawn booted log stream
По умолчанию вывод логов будет включать в себя уровни default, error и fault. Для использования уровней info и debug нужно использовать аргумент
--level
. --level=info
будет отображать уровни по умолчанию, а так же info. --level=debug
будет отображать уровни по умолчанию, а так же info и debug.$ xcrun simctl spawn booted log stream --level=info
$ xcrun simctl spawn booted log stream --level=debug
Также можно фильтровать логи. Например, по конкретному приложению или по типу ивентов и сообщений.
$ xcrun simctl spawn booted log stream --predicate 'processImagePath endswith "Циан"'
$ xcrun simctl spawn booted log stream --predicate 'eventMessage contains "error" and messageType == info'
Чтобы выключить вывод логов нужно нажать ⌃C в окне терминала.
C помощью операции
log collect
можно сделать дамп журнала логов.$ xcrun simctl spawn booted log collect
Сбор диагностической информации и логов
С помощью команды
diagnose
можно сгенерировать подробный журнал всего, что происходило в сессии приложения «Simulator».$ xcrun simctl diagnose
Журнал будет включать в себя:
- системные логи,
- логи симулятора,
- устройства и окружения,
- настройки устройств,
- дополнительную информацию.
В журнале будет содержаться конфиденциальная информация, поэтому с этими данными нужно быть осторожным.
После генерации журнала будет открыта папка с архивом, содержащим всю информацию.
Заключение
В заключение хотелось бы поделиться еще парой полезных команд для работы с симуляторами.
Включение и отключение полноэкранного режима окна симулятора
Позволяет использовать окно симулятора в полноэкранном режиме macOS. Например, можно открыть отдельный рабочий стол с Xcode и симулятором.
defaults write com.apple.iphonesimulator AllowFullscreenMode 1
defaults write com.apple.iphonesimulator AllowFullscreenMode 0
Включение и отключение отображения нажатий на устройстве
Отображает тапы на симуляторе. Удобно при записи видео.
defaults write com.apple.iphonesimulator ShowSingleTouches 1
defaults write com.apple.iphonesimulator ShowSingleTouches 0
P. S.
Если вам интересна тема тестирования, то приглашаю вас подписаться на мой блог в телеграме.