#ios #xcode #core-data #icloud
#iOS #xcode #основные данные #icloud
Вопрос:
ПРЕДЫСТОРИЯ
- Я использую iCloud с основными данными в приложении Packing Planner. Текущая версия в App Store — 2.0.2. У нее более 14000 пользователей.
- В соответствии с потребностями бизнеса мне пришлось добавить 4 новых атрибута (поля) в схему в следующей версии (v2.1).
- Версия моего XCode: 5.1.1, а версия iOS: 7.1.1
- Я реализовал облегченную миграцию схемы с использованием автоматических сопоставлений
ПРОБЛЕМА
- Конечный пользователь использует приложение, загруженное из App Store, и у него включен iCloud.
- Конечный пользователь обновляет приложение до версии 2.1 с помощью Diawi, TestFlight или ipa copy / paste, синхронизация с iCloud НЕ ПРОИСХОДИТ, и пользователь не может видеть данные iCloud на своем устройстве.
- Но если пользователь обновит приложение до версии 2.1 с помощью XCode, синхронизация iCloud произойдет, как и ожидалось.
- Пользователи реального мира будут обновлять приложение через App Store, и нет никакого способа протестировать этот сценарий, кроме Diawi, ipa copy / paste и Testflight.
- Как гарантировать, что пользователи получат работу iCloud должным образом после обновления версии 2.1.
ПРОТЕСТИРОВАНЫ РАЗЛИЧНЫЕ СЦЕНАРИИ
- Я попытался удалить 4 новых атрибута (поля), а затем выполнил «проблемный шаг № 2». Он работает хорошо. Если я снова добавлю 4 новых атрибута, он перестанет функционировать. Виновником наверняка являются добавленные атрибуты.
- Я попытался выполнить «проблемный шаг № 2» на iOS 6. Он работает хорошо, как и ожидалось, без каких-либо проблем.
Ответ №1:
Я узнал, что синхронизация iCloud не будет работать при попытке установить сборку разработки поверх сборки дистрибутива с последней / той же версией. Чтобы заставить iCloud работать, тип сборки должен быть одинаковым. т.е. Синхронизация iCloud будет работать только при установке новой сборки разработки поверх старой сборки разработки / новой сборки дистрибутива поверх старого дистрибутива.