«Не могу найти модель для исходного хранилища», возникающую во время iphone «Автоматическая облегченная миграция»?

Я действительно застрял здесь с тестированием обновления с v1 до v2 приложения для iPhone. У меня есть выпуски IPA, которые я тестирую через специальное распространение через iTunes на моем устройстве iPhone, один для версии 1 приложения, а другой - для версии 2. Обратите внимание:

  • установка v1 отлично работает на моем устройстве
  • , если я удалю v1 и разверну v2 (без миграции), тогда все будет работать нормально
  • , когда я развертываю v2, пока v1 уже есть, я получаю сообщение об ошибке: " причина = Не удается найти модель для хранилища исходных текстов "

Фрагмент ошибки ... *

reason=**Can't find model for source store**}, {
         URL = "file://localhost/var/mobile/Applications/AAAAF424-D6ED-40FE-AB8D-66879386739D/Documents/MyApp.sqlite";
         metadata =     {
             NSPersistenceFrameworkVersion = 320;
             
  • когда я использую" телефонный диск "для просмотра своего устройства, я вижу, что есть файл Documents / MyApp.sqlite

Вопрос - Есть идеи, как решить эту проблему? Какую отладку / анализ я мог здесь сделать? Дайте мне знать, если вам понадобится дополнительная информация.

В качестве обзора я сделал следующее:

  • Развернул мое приложение v1 в AppStore, не настраивая версию для моей основной модели данных (т.е. не знал на момент выпуска версий, поэтому не устанавливал one up)
  • Единственным дополнительным изменением для v2 был один новый атрибут в одной модели
  • Итак, для выпуска v2 я сделал следующее:
  • Воссоздал новую модель Core Data Model
  • Создал v1 версия для модели
  • Создал объект / атрибуты для v1
  • Сохранен
  • Создал версию v2 для модели
  • Создал один дополнительный атрибут
  • Сохранен
  • Воссоздал классы управляемых объектов
  • Обновлен код, чтобы добавить параметры в http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmLightweight.html # // apple_ref / doc / uid / TP40008426-SW1 при вызове addPersistentStoreWithType

PS более полная версия ошибки, если это помогает - на этот раз она возникает из-за имитации ошибки миграции на симуляторе

, reason=Can't find model for source store}, {
    URL = "file://localhost/Users/greg/Library/Application%20Support/iPhone%20Simulator/4.3.2/Applications/69FDFDCF-631D-4191-B852-CD75151B1EA9/Documents/MyApp.sqlite";
    metadata =     {
        NSPersistenceFrameworkVersion = 320;
        NSStoreModelVersionHashes =         {
            Config = <5f92f988 71e11a66 554ae924 61887562 22b8de8a c318b110 e3e4a569 81adafa2>;
        };
        NSStoreModelVersionHashesVersion = 3;
        NSStoreModelVersionIdentifiers =         (
            ""
        );
        NSStoreType = SQLite;
        NSStoreUUID = "3B9832DA-E3A1-431B-83E8-43431A7F3452";
    };
    reason = "Can't find model for source store";
}

PSS. Если это помогает, содержимое каталога / пакета основной модели данных * .mom для каждого архива версии:

v1

-rw-r--r--   1 greg  staff  1664  5 Sep 21:06 MyApp.mom
-rw-r--r--   1 greg  staff  2656  5 Sep 21:06 MyApp.omo
-rw-r--r--   1 greg  staff   480  5 Sep 21:06 VersionInfo.plist

">
  
    
      NSManagedObjectModel_CurrentVersionName
      MyApp
      NSManagedObjectModel_VersionHashes
      
        MyApp
        
          Config
          
            X5L5iHHhGmZVSukkYYh1YiK43orDGLEQ4+SlaYGtr6I=
          
        
      

v2

-rw-r--r--  1 greg  staff   497  2 Oct 12:47 MyApp 1.mom
-rw-r--r--  1 greg  staff  1601  2 Oct 12:47 MyApp 2.mom
-rw-r--r--  1 greg  staff  1695  2 Oct 12:47 MyApp.mom
-rw-r--r--  1 greg  staff  2920  2 Oct 12:47 MyApp.omo
-rw-r--r--  1 greg  staff   665  2 Oct 12:47 VersionInfo.plist

">
  
    
      NSManagedObjectModel_CurrentVersionName
      MyApp
      NSManagedObjectModel_VersionHashes
      
        MyApp
        
          Config
          
            Z/n8092QBHPfBwInZvIm1lei53T1UtZhpNzjl3JA0gs=
          
        
        MyApp 1
        
        MyApp 2
        
          Config
          
            Fih24clI+kZszFd3X6Gm8itq8YDxudiKnjHW8ydNmps=
          
        
      

EDIT: Еще один вопрос, который мне не ясен, как поднят при просмотре ссылки jrturton, представленный ниже:

  1. Как теперь в последней версии XCode выполнить «Установить текущую версию» для соответствующего файла версии модели? то есть в предыдущих сообщениях выделены два разных шага: одно добавление версии модели, но затем отдельно «Установить текущую версию»
  2. Как предполагается использовать поле «идентификатор» базовой модели данных, которое можно установить для каждой из основных моделей данных файлы. Это в инспекторе. Параметр существует, например, для файлов MyApp 1.xcdatamodel, MyApp 2.xcdatamodel и MyApp.xcdatamodel, так что вам нужно вставить сюда каждый из них?

20
задан tshepang 6 July 2014 в 16:36
поделиться