Понимание Базовых Данных Миграция Хранилища iCloud При Тестировании Обновления приложения для iOS
Q: У меня есть приложение App Store с помощью Базовых Данных iCloud, и я тестирую обновление с новой моделью. Когда я создаю и выполняю свое обновление по версии App Store с XCode, существующие данные исчезают. Почему это?
A: При выполнении сборки XCode с новой моделью по версии App Store ожидается, что не появятся существующие данные Базовых Данных хранилище iCloud. То же поведение происходит в Оперативном обновлении также, но не в обновлении, установленном от App Store. Существует две точки для понимания этого:
Во-первых, изменения в Ваших Базовых Данных хранилище iCloud зарегистрированы и организованы устройством. Для каждого устройства Ваше приложение работает (и регистрировался с той же учетной записью iCloud), Базовые Данные создают равноправную папку с уникальным именем в контейнере iCloud Вашего приложения для сохранения изменений, происходящих из него.
Однако равноправное имя папки версии App Store обычно отличается от той из версии не-App Store (такой как тестовая сборка, установленная с XCode, Оперативной версией или версией TestFlight): для версии App Store имя папки определяется данными, снабженными App Store, в то время как для версии не-App Store, это вычисляется на основе пакета приложения ID. В результате, когда Вы устанавливаете сборку XCode или Оперативное обновление по Вашей версии App Store, запускаете его и добавляете данные к хранилищу iCloud, различная равноправная папка будет создаваться в Вашем контейнере iCloud. Для Базовых Данных это походит на другое новое принимающее участие устройство.
Во-вторых, при выполнении легкой миграции на хранилище iCloud, Базовые Данные только перемещают изменения, происходящие из текущего устройства (и затем объединяет их с любыми другими устройствами, сконфигурированными с той новой версией модели), как обсуждено в Миграции и разделе iCloud Базового Руководства по программированию Управления версиями и Миграции данных Модели данных.
В Вашем случае Базовые Данные создадут новую равноправную папку для Вашего обновления тестирования, совпадающего с выполнением Вашего обновления на новом устройстве. Таким образом, при выполнении легкой миграции на хранилище iCloud, Базовые Данные не могут найти изменение, происходящее из этого «нового» устройства, таким образом, никакие существующие данные не были бы перемещены на более новое хранилище версии.
В продуктивной среде, поскольку пользователи загружают Ваше обновление с App Store, его равноправная папка не будет отличаться от предыдущей версии, таким образом, существующие данные, происходящие из текущего устройства, будут найдены и перемещены.
История версии документа
| Дата | Примечания |
|---|---|
| 05.03.2015 | Новый документ, объясняющий, почему Базовые Данные Хранилище iCloud не перемещаются от Вашей версии App Store до Вашей тестовой сборки с новой моделью. |