2013-05-20 15 views
5

Quando si tenta di aprire un progetto specifico con XCode, si blocca. Quando si blocca, viene visualizzata la seguente schermata: imageXCode si blocca durante l'apertura di un progetto specifico

Altri progetti possono aprire correttamente, anche se si apre il progetto che si blocca, il che significa che non posso fare nulla. La mia CPU funziona a piena velocità (la ventola inizia a funzionare) e devo uscire da più processi denominati "Interface Builder Cocoa Touch Tool".

Ho provato ...

  • rm -rf ~/Libraries/Autosave Information
  • rm -rf /Users/scott/Library/Developer/Xcode/DerivedData/*
  • rm -rf ~/Developer/XCode/UROPv6/UROPv6.xcodeproj/xcuserdata
  • rm -rf ~/Library/caches/com.apple.dt.Xcode
  • reinstallazione XCode.

Non riesco ad aprire le preferenze XCode - UROPv6 (il progetto che si blocca) si apre sempre, quindi tutte queste opzioni vengono lanciate fuori dalla finestra.

L'app che si blocca è un progetto iOS. Ho visto this blog post, ma sto usando *.storyboard, non *.xib.

Poiché nessuno dei metodi precedenti ha funzionato, penso di avere qualche file nel mio progetto che sta causando questo. Come posso aprire il progetto?

Per il registro errori completo quando XCode si arresta in modo anomalo, vedere this gist.

+0

Così si apre su altri Mac? –

+0

Non so - al momento non ho accesso ad altri Mac. – Scott

+1

Solo un suggerimento: potresti pubblicare il tuo progetto in modo che qualcun altro possa provare a eseguirlo. Probabilmente non è l'ideale, ma ti darebbe un punto di partenza. Non ruberemo il tuo codice. Onesto (Almeno non lo farò ...) – Undo

risposta

6

rm -rf ~/Developer/XCode/UROPv6/Reconstruct.xcodeproj/project.xcworkspace/xcuserdata lavorato. Quando ho provato a correre git checkout 0ea13d, ha detto `errore:

Your local changes to the following files would be overwritten by checkout: 
Reconstruct.xcodeproj/project.xcworkspace/xcuserdata/scott.xcuserdatad/UserInterfaceState.xcuserstate 
Please, commit your changes or stash them before you can switch branches. 
Aborting` 

Così ho cancellato la cartella, e ora funziona.

1

Scott, si potrebbe considerare un file .gitignore più completo. La cartella xcuserdata può essere (dovrebbe essere?) Ignorata da git nella maggior parte dei casi.

Ecco un esempio di file .gitignore da cui è possibile iniziare, che escluderà la maggior parte delle cose che non è necessario che siano nell'archivio, alcune delle quali possono causare problemi strani di volta in volta o che semplicemente richiedono spazio nel tuo archivio senza contribuire con alcun valore. Questo esempio include molti vecchi file di controllo di Xcode e dei suoi antenati che potresti non pensare che incontrerai, fino a quando un giorno importerai una classe, una libreria o un framework da un progetto con radici profonde.

L'ho messo insieme e l'ho condiviso su un blog diversi anni fa (A better sample .gitignore for Xcode iOS and OSX projects) in base alla filosofia, "se si tratta di un file temporaneo di qualsiasi tipo, se normalmente non dovrebbe essere in un archivio (ad esempio una chiave privata Sparkle), o se semplicemente non è necessario (ad es. vari prodotti intermedi di costruzione), escludilo ".

Se non ti piace questo, dai un'occhiata in giro e trova quello che ti piace. Ci sono derivati ​​di tutto questo sul web, ora (incluso lo a cool one implemented as an Xcode script che crea il file in qualunque directory tu voglia), così come altri con approcci filosofici (minimalisti) diversi, e alcuni con commenti più dettagliati.

È possibile inserire un file .gitignore al livello più alto di qualsiasi archivio git e archiviarlo, per imporre l'ignora per tutti i membri del team.Puoi anche metterlo sul tuo sistema come un file di ignoranza globale per te stesso, nel caso in cui tu crei un progetto e dimentichi di aggiungere il file ignore prima del commit iniziale.

LINK: How to make a global .gitignore file

file di .gitignore campione per Xcode iOS e OSX

# Mac OS X Finder and whatnot 
.DS_Store 
.Trashes 

# Sparkle distribution Private Key 
dsa_priv.pem 

# Xcode (and ancestors) per-user config 
*.mode1 
*.mode1v3 
*.mode2v3 
*.perspective 
*.perspectivev3 
*.pbxuser 

# Whitelist the Xcode defaults 
!default.mode1 
!default.mode1v3 
!default.mode2v3 
!default.perspective 
!default.perspectivev3 
!default.pbxuser 

# Xcode 4 - Deprecated classes 
*.moved-aside 

# Generated files 
VersionX-revision.h 

# build products 
xcuserdata/ 
DerivedData/ 
build/ 
*.[oa] 

# Other source repository archive directories 
.hg 
.svn 
CVS 

# automatic backup files 
*~.nib 
*.swp 
*.lock 
*~ 
*(Autosaved).rtfd/ 
Backup[ ]of[ ]*.pages/ 
Backup[ ]of[ ]*.key/ 
Backup[ ]of[ ]*.numbers/ 
0

ho avuto un problema simile con Xcode 6.1.1. Ho provato tutte le soluzioni sopra e alcune altre che ho trovato sul web senza successo. Alla fine ho fatto ricorso a una ricerca binaria e ho ripreso a funzionare.

  1. Effettuare un backup del progetto Xcode.
  2. Aprire il pacchetto del progetto Xcode (nel Finder, fare clic con il tasto destro e scegliere Mostra contenuto della confezione).
  3. Aprire project.pbxproj in un editor di testo ed esaminare la sezione PBXFileReference.
  4. Rimuovere metà degli articoli nell'elenco avendo cura di rimuovere anche gli articoli corrispondenti dalla sezione PBXGroup di seguito. Salva il file e apri il progetto in Xcode. Continua a scorrere finché non trovi gli articoli offensivi. Ad esempio se Xcode si blocca ancora, ripristinare il backup e rimuovere l'altra metà degli elementi e riprovare.

Nel mio caso il problema era una cartella con collegamenti simbolici.

Problemi correlati