Очистка симулятора iPhone

Есть ли простой способ очистить каталог, где xcode развертывает приложение при создании для симулятора iPhone? У меня есть база данных sqlite, которая при необходимости копируется в папку "Документы" при запуске. Проблема в том, что я могу изменить свою схему, но новая база данных не будет скопирована, потому что она уже существует.

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

Ответ 1

Симулятор устанавливает приложения в:

"$HOME/Library/Application Support/iPhone Simulator/User/Applications"

Также проверьте:

"$HOME/Library/Developer/CoreSimulator/Devices"

Файлы GUID и каталоги совпадают с установленными приложениями для симулятора.

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

Я знаю, что есть способ добавить скрипты в процесс сборки в XCode.

Также похоже, что XCode изменяет GUID, который использует каждую сборку (каталог, в котором мое приложение сидит между строками в XCode), поэтому попытка удалить один и тот же каталог все время не будет работать. Если вы работаете только с одним приложением одновременно, то очистка всего каталога будет вариантом.

Ответ 2

Из ресурсов Apples Dev:

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

Это напоминает:

iOS  Reset

Ответ 3

То, как я это делаю, - просто щелкнуть и удерживать значок моего приложения в симуляторе, а затем, когда он начнет покачивать, щелкните черно-белый (x). Появится сообщение о том, действительно ли вы хотите удалить, и просто нажмите "Да". В следующий раз, когда вы создадите и развернете приложение, он будет использовать новый sqlite db без заминки, и вам не нужно гадать в файловой системе.

Ответ 4

После iOS 5 в Mac OS X Lion вы можете попробовать:

  • Создайте script под названием RemoveSimulatorApps.command, который содержит:
    rm -rf "$HOME/Library/Application Support/iPhone Simulator/5.0/Applications/*"
    
  • Сохраните этот script в каталог в PATH.
  • Сделайте исполняемый файл, например:
    chmod +x RemoveSimulatorApps.command

Предположения

  • Вы можете захотеть вызвать это с помощью кнопок выбора клавиатуры, например, на клавиатуре Logitech или Microsoft с программируемыми клавишами (следовательно, сохраните ее как файл .command, а не, например,.sh)
  • Вы можете сдуть все в iOS-симуляторе (идеально, если вы просто активно работаете над одним приложением)
  • Все примечания от других относятся к тому, чтобы быть хорошим обновляемым приложением и т.д. (я лично нашел это полезным, тем не менее, b/c У меня есть режимы режима разработки, которые перезагружают базу данных в определенном состоянии, я пытался сделать некоторую стабильную надежность/ошибку обработка на)

Ответ 5

это может быть слишком много, но..

вы также можете использовать меню и Reset Контент и настройки... '

Ответ 6

То, что вы действительно пытаетесь сделать, это очистить вашу базу данных, если вы изменили схему. Один из способов сделать это, и это сделает вас счастливее в долгосрочной перспективе, когда вы начнете отправлять версии 2.0, 3.0 и т.д. Вашего приложения, - это проверить версию вашей таблицы sqlite, а если она изменилась, то отбросьте старый файл и используйте тот, который находится в вашем комплекте.

Поиск способа очистки Simulator не поможет реальной проблеме очистки iPhone клиента при отправке новой версии с новой схемой.

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

Ответ 7

для Xcode >= 6

xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -n1 xcrun simctl erase

Ответ 8

Как и в Xcode 6, вы можете сделать это из командной строки с помощью: xcrun simctl erase

Кроме того, приложение iOS Simulator (как версия Xcode 6, так и более старые версии) имеет пункт меню Reset Content and Settings ", который можно использовать для удаления текущего загруженного устройства.

Ответ 9

Это работает с Xcode 6:

xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -I{} xcrun simctl erase {}

Для .bash_profile

alias cleansim="xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -I{} xcrun simctl erase {}"

Ответ 10

Как и Xcode 6:

xcrun simctl erase <sim udid> < - сбрасывает симулятор.

Ответ 11

Очистить кеш Xcode

Command + Option + Shift + K

Command + Shift + K

(Используйте оба из них, потому что они имеют разную функциональность)

Сбросить производные данные

Панель меню → Окно → Органайзер → Проекты → Выберите свой проект

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

Очистить кэш симулятора

Панель меню → iOS Simulator → Reset Содержание и настройки

Ответ 12

Как я объяснил в комментарии в подтвержденном ответе:

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

Итак, я закончил локально версию моей папки Device с помощью git и выполнил следующие команды, чтобы удалить подписку на календарь после того, как я добавил ее:

$ git reset HEAD --hard
$ git clean -f

Итак, шаги:

  • Установите приложение на iOS Simulator и сделайте то, что вам нужно сделать
  • Определите свое устройство в ~/Library/Developer/CoreSimulator/Devices/ и сделайте cd к нему, затем git init, чтобы создать репозиторий git
  • Как только вы хотите сохранить состояние, выполните git commit -a "Message"
  • Выполняйте любые изменения настроек (например: добавление подписки на календарь) и выполните свои тесты
  • Выключение симулятора
  • Do git reset --hard HEAD
  • Запустите симулятор, все изменения, сделанные после git commit, исчезли.

Ответ 13

В XCode перейдите в пункт меню "Окно", выберите "Устройства", а затем вы можете просто удалить те, которые вам больше не нужны.

Ответ 14

Для Xcode <= 5

Я добавил следующее к своему ~/.bash_profile

alias cleansim='rm -r ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/*'

Он просто уничтожает все приложения на сим.