2009-10-12 12 views
8

So che molti di voi hanno sperimentato lo stesso scenario, dove si sbatte la testa contro il muro chiedendosi cosa c'è di sbagliato nella tua app solo per scoprire che hai dimenticato di salvare la tua interfaccia Modifiche del costruttoreSaving Interface Builder Modifiche durante la creazione in Xcode

Bene, questo non mi succede mai, perché per qualche motivo Xcode mi chiederà di salvare qualsiasi modifica in Interface Builder quando creo. Un collega e io stiamo cercando di capire come cambiare questo sulla sua macchina, senza successo. Devo aver fatto qualcosa nelle primissime fasi della mia vita di sviluppo iphone per configurarlo.

Qualcuno sa come collegare IB a Xcode in modo che richieda di salvare le modifiche ai file IB durante una compilazione?

+1

Ho appena aggiornato a Snow Leopard e ora ho perso la mia integrazione con IB pure. –

risposta

1

Ciò usata per funzionare senza problemi anche per me, ma ha smesso di funzionare con Xcode 3.0. Sono sicuro che ci deve essere qualche impostazione nascosta dal momento che funziona per alcuni, presumibilmente quelli che l'hanno attivato in Xcode 2.x, tuttavia non l'ho trovato.

Per chi fosse interessato, ho una soluzione che comporta la chiamata di un semplice AppleScript che salva tutti i documenti IB aperti.Ecco i passaggi:

1) creare lo script di Apple, qualcosa in questo senso:

tell application "Interface Builder" 
set num to count of documents 
if num > 0 then 
    repeat with i from 1 to num 
    tell document i to save 
    end repeat 
end if 
end tell 

2) salvarlo come Script (nel mio esempio /Users/myself/Programming/SaveIBFiles.scpt)

3) Nel progetto, creare un nuovo Obiettivo. Questo è il menu "Progetto" »" Nuovo target ... ", lì scegli" Altro "» "Shell Script Target". L'ho chiamato "Salva file IB"

4) Espandi il nuovo target, contiene già una fase "Esegui script". Richiamare le informazioni per questa fase Esegui script scheda "Generale", lasciare Shell a /bin/sh e come Script scrittura:

if [ -f "/Users/myself/Programming/SaveIBFiles.scpt" ]; then 
osascript "/Users/myself/Programming/SaveIBFiles.scpt" 
fi

5) Ora selezionare il bersaglio originale, richiamare il suo informazioni, scheda "Generale", e aggiungi il nuovo target come dipendenza diretta.

Ora, ogni volta che si crea l'app, lo script viene chiamato, salva i file IB aperti e quindi compila il target principale. Si noti che se non si crea un nuovo target e si aggiunge semplicemente una fase di build "Esegui script" all'obiettivo principale, il salvataggio sembra avvenire troppo tardi.

Spero che questo aiuti!

+0

proveremo questo se non emergono altre soluzioni. Mancano ancora alcuni giorni alla ricompensa, quindi voglio vedere quali altre cose emergono. Grazie. –

+0

Sì, una soluzione "nativa" sarebbe davvero bella. – Pascal

+0

beh, nulla di originario sembrava emergere dopo aver provato tutti i suggerimenti, quindi ti darò i punti per farlo. –

1

Non sei sicuro ma hai installato le versioni più recenti degli ambienti di sviluppo di Apple? Il mio era preimpostato.

+0

Sono in esecuzione Leopard e ho installato 3.1.2 iphone dev environment con Xcode. –

3

Qualcun'altro ha chiesto più o meno il same question (collegamento da @balanon). La risposta da irsk:

Stranamente, sembra essere causato da aprendo il progetto utilizzando il File> Aprire il menu progetto recente in Xcode, o utilizzando l'elenco Documenti recenti nel la schermata di benvenuto Xcode.

Se fa doppio clic il file di progetto in Finder per aprirlo o scegliere il progetto dal menu Elementi recenti nel menu Apple, il collegamento di Xcode per Interface Builder è intatto.

Ecco la mia risposta originale:

fare tutti e due hanno la stessa versione di Xcode? Ho notato che da quando mi sono trasferito su Snow Leopard e Xcode 3.2 il collegamento tra Xcode e Interface Builder non è così solido come nelle precedenti versioni. Questo sembra abbastanza diffuso - ho visto almeno un po 'di lamentele su Twitter - e quindi spero che Apple risolva questo problema.

+0

Questo potrebbe essere il caso del leopardo delle nevi, ma l'anno scorso ero in una classe di iPhone e io ero l'unico della classe a lavorare con l'integrazione di xcode e IB. Eravamo tutti sulla stessa versione di xcode e la stessa versione di Leopard. L'istruttore non sapeva perché il mio funzionava e nessuno lo era. –

+0

Sono su Snow Leopard con Xcode 3.2.2 e questa soluzione non ha funzionato per me. Ho provato ad usare sia il menu Apple che il Finder. – Senseful

1

Forse l'impostazione non viene propagata correttamente attraverso un'installazione o un aggiornamento. Hai provato a disattivare l'impostazione "Per i file non salvati"? (XCode -> Preferenze -> Edificio)

+0

Ho provato questo e non sembrava fare la differenza. grazie comunque. –

1

Prima di SnowLeopard, IB ha usato per salvare automaticamente le mie modifiche quando ho costruito. Ora devo salvare manualmente oppure non usa le mie ultime modifiche. Inoltre, IB non mantiene o aggiorna il suo menu File "Apri recenti" (è vuoto). Verifica con il tuo amico se è su SnowLeopard con Xcode 3.2.

+0

Sì, il mio collega è in snow leopard e xcodd 3.2. –

1

Penso che sia correlato alle prefrenze xCode.

Vedere "xCode" -> "Preferenze" -> "Building" -> "Per i file non salvati" -> opzione

+0

Sì, questo sarebbe il punto di partenza più ovvio, sfortunatamente, entrambi abbiamo il set che richiede di salvare prima di costruire. Il problema sta nell'integrazione di Interface Builder da qualche parte. –

2

Stai forse eseguendo 32 bit mentre è in esecuzione a 64 bit?

Mi sembra di ricordare un problema con la comunicazione IB basata su AppleEvent con Xcode a 64 bit.

1

Prova ad aprire il tuo progetto xcode dalla finestra del mirino. Dopo l'aggiornamento a Snow Leopard il collegamento tra xcode e IB si è rotto se il progetto è stato caricato dall'opzione File recenti.

Questa risposta può essere correlato Interface Builder and Xcode integration not working

+0

Sono su Snow Leopard con Xcode 3.2.2 e questa soluzione non ha funzionato per me. – Senseful

Problemi correlati