Ich weiß, dass viele von Ihnen das gleiche Szenario erlebt haben, bei dem Sie den Kopf gegen die Wand schlagen und sich fragen, was mit Ihrer App los ist, nur um festzustellen, dass Sie Ihre Interface Builder-Änderungen vergessen haben.
Nun, das passiert mir nie, denn aus irgendeinem Grund wird Xcode mich auffordern, Änderungen im Interface Builder zu speichern, wenn ich sie erstelle. Ein Kollege und ich versuchen herauszufinden, wie man das an seiner Maschine ändern kann, ohne Erfolg. Ich muss etwas in den frühen Phasen meines iphone Entwicklungslebens getan haben, um dies zu konfigurieren.
Weiß jemand, wie man IB mit Xcode verbindet, damit es während eines Builds Änderungen an IB-Dateien speichert?
Das funktionierte auch für mich einwandfrei, aber ich hörte auf, mit Xcode 3.0 zu arbeiten. Ich bin sicher, dass es einige versteckte Einstellungen geben muss, da es für einige funktioniert, vermutlich diejenigen, die es in Xcode 2.x aktiviert hatten, aber ich habe es nicht gefunden.
Für Interessierte habe ich einen Workaround , bei dem ein einfaches AppleScript aufgerufen wird, das alle geöffneten IB-Dokumente speichert. Hier sind die Schritte:
1) Erstellen Sie das Apple Script, etwas in diesen Zeilen:
%Vor%2) Speichern Sie es als Skript (in meinem Beispiel /Users/myself/Programming/SaveIBFiles.scpt )
3) Erstellen Sie in Ihrem Projekt ein neues Ziel. Das ist Menü "Projekt" »" Neues Ziel ... ", dort wählen Sie" Andere "» "Shell Script Target". Ich nannte es "Save IB Files"
4) Erweitern Sie das neue Ziel, es enthält bereits eine "Run Script" -Phase. Rufen Sie die Info für diese Run Script-Phase auf, Registerkarte "Allgemein", lassen Sie Shell bei /bin/sh
und als Skript schreiben:
5) Wählen Sie nun Ihr ursprüngliches Ziel, rufen Sie dessen Info auf, Registerkarte "Allgemein", und fügen Sie das neue Ziel als direkte Abhängigkeit hinzu.
Nun, wenn Sie Ihre App erstellen, wird das Skript aufgerufen, speichert Ihre geöffneten IB-Dateien und kompiliert dann Ihr Hauptziel. Beachten Sie, dass wenn Sie kein neues Ziel erstellen und lediglich eine Buildphase "Run Script" zu Ihrem Hauptziel hinzufügen, die Speicherung zu spät erscheint.
Hoffe, das hilft!
Jemand anders hat die gleiche Frage (Link von @balanon ). Die Antwort von irsk :
Bizarr scheint es durch verursacht zu werden Öffnen Sie Ihr Projekt mit der Datei & gt; Öffnen Sie das Menü "Neuestes Projekt" in Xcode oder Verwenden Sie die Liste Zuletzt verwendete Dokumente in der Xcode Willkommensbildschirm.
Wenn ich auf die Projektdatei in doppelklicke den Finder, um es zu öffnen oder wählen Sie die projizieren Sie aus dem Menü "Letzte Elemente" in das Apple-Menü, Xcode-Verbindung zu Interface Builder ist intakt.
Hier ist meine ursprüngliche Antwort:
Haben Sie beide die gleiche Version von Xcode? Ich stelle fest, dass seit der Umstellung auf Snow Leopard und Xcode 3.2 die Verbindung zwischen Xcode und Interface Builder nicht mehr so robust ist wie bei früheren Versionen. Das scheint ziemlich weit verbreitet zu sein - ich habe zumindest einige Beschwerden auf Twitter gesehen - und hoffe, dass Apple das repariert.
Vielleicht wird die Einstellung durch eine Installation oder ein Upgrade nicht korrekt weitergegeben. Haben Sie versucht, die Einstellung "Für ungespeicherte Dateien" auszuschalten? (XCode - & gt; Einstellungen - & gt; Gebäude)
Vor SnowLeopard hat IB meine Änderungen automatisch gespeichert, als ich gebaut habe. Jetzt muss ich manuell speichern oder es verwendet meine letzten Änderungen nicht. Darüber hinaus wird das Menü "Zuletzt geöffnete Dateien öffnen" von IB nicht aktualisiert oder aktualisiert (es ist leer). Erkundigen Sie sich bei Ihrem Freund, ob er mit Xcode 3.2 auf SnowLeopard ist.
Ich denke, dass es mit xCode-Präferenzen zusammenhängt.
Siehe "xCode" - & gt; "Einstellungen" - & gt; "Gebäude" - & gt; "Für nicht gespeicherte Dateien" - & gt; Option
Öffnen Sie Ihr xcode-Projekt aus dem Finder-Fenster. Nach dem Upgrade auf Snow Leopard brach die Verbindung zwischen xcode und IB, wenn das Projekt über die Option Letzte Dateien geladen wurde.
Diese Antwort kann verwandt sein Interface Builder und Xcode-Integration funktioniert nicht