Есть ли простой способ очистить каталог, где 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 вы можете попробовать:
Предположения
- Вы можете захотеть вызвать это с помощью кнопок выбора клавиатуры, например, на клавиатуре 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/*'
Он просто уничтожает все приложения на сим.