Der Titel enthält ziemlich genau die Frage. Wir haben eine App mit einem Datenmodell veröffentlicht, dessen Inverse nicht ordnungsgemäß konfiguriert wurde. Wir haben diese in der nächsten Version mit einer neuen Version des Datenmodells behoben, aber Xcode zeigt immer noch die Warnungen an, wenn die vorherige Datenmodellversion kompiliert wird.
Ich möchte die Möglichkeit, Dokumente aus dem alten Datenmodell in das neue Datenmodell zu migrieren, nicht durchbrechen, und ich bin mir ziemlich sicher, dass das Ändern der Inversen im alten Datenmodell genau das tun wird. Also, ich frage mich, ob es eine Möglichkeit gibt, diese Warnung für nur diese Datei zu unterdrücken - ich befürchte, dass jemand anders mitkommen könnte, die Warnung sehen und sich entscheiden, sie zu "reparieren".
Bearbeiten: Basierend auf den Kommentaren von pe8ter sieht es so aus, als ob ich die Option MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS für eine einzelne Revision des Datenmodells angeben möchte. Ich möchte es nicht projektweit oder gar modelbündelweit abschalten, weil ich möchte, dass die Warnungen erscheinen, wenn die Leute in Zukunft denselben Fehler machen.
Da Sie die Datei nur aus Gründen der Abwärtskompatibilität einbinden und daher nicht möchten, dass sie jemals geändert wird, würde ich empfehlen, die bereits kompilierte Datei in die Quellcodeverwaltung zu kopieren und die Buildphase Copy Files zu verwenden richtiger Ort.
Da wir nur über eine einzelne Revision in einem Bundle sprechen, müssen Sie möglicherweise eine leere Dummy-Version in der Modellquelle behalten (damit wird die Nummerierung richtig). Dann würde die Phase "Dateien kopieren" einfach überschrieben.
Ich kann nicht sagen, dass ich das jemals selbst tun musste, aber Sie könnten versuchen, ein Skript zu schreiben, das den momc
Compiler auf Ihrem alten Datenmodell mit MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS ausführt, wie Sie möchten. Fügen Sie dann eine Run Script-Buildphase hinzu, um das Skript beim Erstellen auszuführen. Möglicherweise müssen Sie Ihr altes Datenmodell von Ihrem Ziel entfernen, damit Xcode nicht versucht, es zu kompilieren. Sie können die Build-Ressourcen für das Kopieren von Bundle-Ressourcen verwenden, um das kompilierte Modell in Ihre erstellte Anwendung aufzunehmen.
Bevor Sie dieses Skript schreiben können, müssen Sie den momc
-Modell-Compiler finden. Diese Seite sagt, dass es sich um Library/Xcode/Plug-ins/XDCoreDataModel.xdplugin/Contents/Resources/
handelt, aber es ist scheint für Xcode 4 umgezogen zu sein.