Die iPhone CoreData-Migration schlägt mit "Modell für Quellspeicher kann nicht gefunden werden" fehl

8

Ich habe eine iPhone-App, die CoreData verwendet. Ich habe kürzlich einige kleinere Änderungen am Datenmodell vorgenommen und jetzt bekomme ich jedes Mal, wenn die App geöffnet wird, die Fehlermeldung "Kann kein Modell für den Quellspeicher finden".

Ich habe 2 Versionen des Datenmodells und die einzigen Änderungen, die ich vorgenommen habe, waren einige Zusätze einiger Felder. Ich folgte dem Leitfaden hier was anfänglich funktionierte, dann bricht es erst heute, nach dem Hinzufügen einiger zusätzlicher Felder, ab. Alle zusätzlichen Felder sind als optional gekennzeichnet und alle haben Standardwerte. Der Migrationscode ist unten:

%Vor%

Das managedObjectModel wurde hier erfolgreich erstellt:

%Vor%

Ich habe das Problem auf einen Konflikt in der Version für 1 Entität gefunden. Der Fehler, der ausgelöst wird, schließt dies für die Entität ein:

%Vor%

aber der Hash in der VersionInfo.plist im App-Bundle ist:

%Vor%

Es gibt keine anderen Entitäten in der VersionInfo.plist mit dem Hash <cc1456b7....> .

    
Colin Humber 24.09.2010, 22:49
quelle

2 Antworten

5

Aus der verknüpften Antwort,

  

Das scheint großartig und so einfach wie ich es wollte - aber ich denke, Sie müssen während der Entwicklung vorsichtig sein, wenn Sie ein Modell ändern - andernfalls müssen Sie für jede Änderung eine neue Version erstellen.

Es klingt, als hätten Sie die Version 2, die bearbeitete Version 2 erstellt, die App ausgeführt, die Version 2 erneut bearbeitet und die App erneut ausgeführt. Das funktioniert nicht so gut; Sie müssen alle die Modellversionen speichern, von denen Sie erwarten, dass sie geöffnet werden können. Das ist ein bisschen mühsam.

Sie können alle Ihre Modelle nach App-Versionen benennen, z. FooModel-1 und FooModel-1.1 entsprechen Releases und FooModel-1.2d1, FooModel-1.2d2 für "Development" -Versionen. Vor der Veröffentlichung können Sie FooModel-1.2d10 in FooModel-1.2 umbenennen und die anderen Entwicklungsversionen entfernen.

(Oder ich könnte die Frage völlig falsch verstehen; tut mir leid.)

    
tc. 24.09.2010, 23:02
quelle
0

Nun, in meinem Fall passierte genau das Gleiche und ich war auf iOS 7 und dieses Problem hat meinen Kopf für mindestens eine Woche geschraubt und dann endlich die Lösung gefunden, die für mich funktioniert . Damit es funktioniert, müssen Sie einen zusätzlichen Wert in den Optionen hinzufügen, der zum Hinzufügen von PersistentStore verwendet wird und dann gehen Sie (ich bin mir nicht sicher über andere iOS-Version, aber ja, es wird definitiv auf iOS 7 funktionieren).

%Vor%     
pankaj 30.07.2014 08:26
quelle