Подтвердить что ты не робот

Reset содержимое и настройки всех iOS-симуляторов

Есть ли какая-либо опция для reset содержимого и настроек всех симуляторов? В одном событии или одной команде через командную строку?

4b9b3361

Ответ 2

Основываясь на ответе Джереми Хаддлстона Секвойи, я написал оболочку script, которая будет reset всех симуляторов.

Для Xcode 7 вы можете использовать:

#!/bin/sh

instruments -s devices \
| grep "(\d[.0-9]\+) \[[0-9A-F]\{8\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}\]" \
| grep -o "[0-9A-F]\{8\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}" \
| while read -r line ; do
    echo "Reseting Simulator with UDID: $line"
    xcrun simctl erase $line
done

Для предыдущих версий используйте:

#!/bin/sh

instruments -s devices \
 | grep Simulator \
 | grep -o "[0-9A-F]\{8\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}" \
 | while read -r line ; do
    echo "Reseting Simulator with UDID: $line"
    xcrun simctl erase $line
done

Ответ 3

С помощью Xcode 6 вы можете использовать служебную программу командной строки simctl:

xcrun simctl erase <device UDID>

С помощью Xcode 7 вы можете стереть все сразу:

xcrun simctl erase all

Ответ 4

Вдохновленный ответом Даниэля Вуда, я придумал этот.

Решает проблему, что делать с работающим симулятором. Наша среда CI оставляет симулятор запущенным после того, как тесты выполняются, и что становится все более испорченным с течением времени.

Обнаружение направляющих не так точно, но я думаю, что компромисс с читабельностью стоит.

#!/bin/bash
xcrun simctl list | grep Booted | grep -e "[0-9A-F\-]\{36\}" -o | xargs xcrun simctl shutdown
xcrun simctl erase all

Протестировано с помощью XCode 7.

Ответ 5

С помощью последней версии инструментов командной строки Xcode вы можете вызвать xcrun simctl erase all

Обязательно покидайте сим каждый раз, когда вы вызываете эту функцию, или вы получите сообщение об ошибке An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159): Unable to erase contents and settings in current state: Booted

Ответ 6

вы можете запустить эту команду xcrun simctl erase all

Ответ 7

С Xcode 10:

#!/usr/bin/env sh

xcrun simctl shutdown all
xcrun simctl erase all

Ответ 8

Просто перейдите к ~/Library/Application Support/iPhone Simulator и удалите все содержимое. Вышеуказанные методы не работают на iOS 7, поэтому это, похоже, сработало для меня.

Ответ 9

Я написал script, который будет reset содержимым и настройками всех версий и устройств для iOS Simulator. Он захватывает имена устройств и номера версий из меню, поэтому он будет включать в себя любые новые устройства или версии iOS, которые Apple выпускает для симуляторов.

Легко запускается вручную или используется в build- script. Я бы предложил добавить его в качестве предварительного действия script перед сборкой.

Он в значительной степени основывался на Stian script выше, но не устарел от новых версий iOS и устраняет диалоговое окно (лучше для скриптов сборки автоматизации).

https://github.com/michaelpatzer/ResetAllSimulators

Ответ 10

Вы можете вызвать эту команду:

rm -rf ~/Library/Application Support/iPhone Simulator

Ответ 11

Есть инструмент xctool - https://github.com/facebook/xctool, который является заменой xcodebuild. Он позволяет создавать приложения из командной строки, а также запускать тесты для него. Помимо запуска тестов, он позволяет предоставлять такие аргументы, как -freshSimulator и -freshInstall, которые перезагружают контент для целевого симулятора перед выполнением тестов. Это упрощает перезагрузку симулятора, поскольку вы избегаете различной магии с помощью скриптов bash и т.д. Все инкапсулируется внутри инструмента.

Ответ 12

xcrun simctl erase all
xcrun simctl delete unavailable

Ответ 13

Чтобы установить пользовательский контент и настройки симулятора в состояние factory и удалить установленные приложения, выберите iPhone Simulator > Reset Содержание и настройки.