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

Как протестировать перенос основных данных с помощью приложения уже в App Store?

У нас есть приложение, которое в настоящее время находится в магазине приложений. Он использует Core Data в качестве механизма сохранения. У нас есть новая версия, готовая к работе, и она имеет некоторые изменения схемы. В частности, мы добавили 1 новый объект и добавили новый атрибут к существующему объекту. Из моего понимания и чтения это одна из самых простых миграций, которые могут произойти. Нет никаких удалений полей и никаких изменений для изменения. Модель данных состоит из 5 объектов без каких-либо связей.

Мы выполнили версию модели данных и создали модель .xcmappingmodel для обработки миграции. Мы обрабатываем миграцию, добавляя следующие параметры к созданию PersistentStoreCoordinator:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                     [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, nil];

В настоящее время мы успешно протестировали несколько членов команды, используя следующий процесс:

  • Удалите все тестовые версии приложения с устройства и из iTunes
  • Перейдите в магазин приложений и загрузите текущую версию
  • Внесите некоторые изменения в приложение, которое докажет успешность миграции.
  • Перетащите новый бинарный файл (подписанный с тем же идентификатором пакета) в iTunes и синхронизируйте
  • Загрузите новую версию на устройство, убедитесь, что изменения, внесенные в предыдущую версию, все еще присутствуют и что приложение не сбой

Мой вопрос таков: Есть ли более простой/лучший способ проверить это? Наша забота заключается в том, что, как только приложение выходит за дверь, нет другого способа обеспечить нашим пользователям лучший опыт.

4b9b3361

Ответ 1

Я использую Core Data для своего приложения и обновляюсь примерно 7 раз, переходя от старых моделей к новым моделям.

Всякий раз, когда я готов выпустить следующую версию, я всегда проверяю миграцию с помощью Model Mapping. Пока я создавал сущность и атрибут исходной модели is matched against corresponding сущности и атрибута целевой модели, я не испытывал никаких проблем.

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

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

Я уверен, что это так, потому что я без проблем тестировал разные версии своего приложения.

Ответ 2

Да.

Я надеюсь, что вы управляете своим исходным кодом в системе управления исходным кодом. Если нет, начните как можно скорее. Xcode 4 предоставляет встроенный git, если у вас его нет, используйте его.

Если у вас старый исходный код, сохраните два разных каталога: сборку 1.0 (теперь в магазине) и сборку 1.1. Если вы можете манипулировать данными, которые будут выполняться в симуляторе, этот идеал.

Вы сохраняете свои основные данные в файле в приложении, теперь это где-то вроде /Users/bshirley/Library/Application\ Support/iPhone\ Simulator/4.3.2/Applications/6D18BD0E-70C1-41FB-9BE8-F736CAAA9FFC/Documents/MyApp.sqlite

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