Синхронизация с iTunes делает модель Core Data несовместимой - как это возможно? - PullRequest
2 голосов
/ 16 июля 2011

Меня сейчас преследует какая-то странная проблема:

Одно из моих приложений (еще не выпущенных) аварийно завершает работу при запуске, но только в том случае, если устройство было синхронизировано с iTunes с момента установки приложения.
Приложение специально разослано некоторым тестировщикам, один из них заметил этот сбой и вот как его можно воспроизвести:

  1. Установить приложение
  2. Запустите приложение, заполните Core Data Store, все отлично работает
  3. Закрыть приложение, снова запустить приложение, использовать его нормально, все работает нормально
  4. Синхронизация устройства с iTunes
  5. Приложение сразу после запуска вылетает

Из консоли устройства, которую я прочитал после сбоя:
The operation couldn’t be completed. (Cocoa error 134100.)
и далее вниз:
The model used to open the store is incompatible with the one used to create the store

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

И что меня еще больше удивляет, так это то, что если я снова установлю приложение (через Testflight, не удаляя его сначала для сохранения данных), оно будет работать снова. С тем же хранилищем данных, которое ранее вызывало сбой приложения.

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

Я даже не знаю, с чего начать отладку, так как не могу сказать, что именно происходит во время синхронизации iTunes.

Любые намеки приветствуются !!

1 Ответ

1 голос
/ 16 июля 2011

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

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

...