Interface Builder speichern Änderungen beim Erstellen in Xcode

8

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?

    
Tony Eichelberger 12.10.2009, 18:20
quelle

8 Antworten

1

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:

%Vor%

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!

    
Pascal 16.10.2009, 09:56
quelle
3

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.

    
Stephen Darlington 15.10.2009 15:46
quelle
2

Laufen Sie vielleicht 32 Bit, während er 64 Bit läuft?

Ich erinnere mich an ein Problem mit IBs AppleEvent-basierter Kommunikation mit Xcode in 64 Bit.

    
Ken 20.10.2009 09:25
quelle
1

Nicht sicher, aber haben Sie die neuesten Versionen der Entwicklungsumgebung von Apple installiert? Mine wurde voreingestellt.

    
vinnybad 15.10.2009 15:42
quelle
1

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)

    
blueberryfields 16.10.2009 01:23
quelle
1

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.

    
mahboudz 16.10.2009 08:38
quelle
1

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

    
Pavel Yakimenko 16.10.2009 08:50
quelle
1

Ö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

    
user193317 20.10.2009 18:46
quelle

Tags und Links