2013-05-20 11 views
5

Kiedy próbuję otworzyć konkretny projekt z XCode, zawiesza się. Kiedy się zawiesza, pokazuje następujący ekran: imageKod X zawiesza się podczas otwierania określonego projektu

Inne projekty mogą być otwarte, ale projekt, który się zawiesza, również się otwiera, co oznacza, że ​​nie mogę nic zrobić. Mój procesor pracuje z pełną szybkością (wentylator zaczyna działać) i muszę zakończyć wiele procesów o nazwie "Narzędzie do budowania interfejsu Cocoa Touch Tool".

Próbowałem ...

  • 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
  • Ponowna XCode.

Nie mogę otworzyć preferencji XCode - UROPv6 (projekt, który się zawiesza) zawsze się otwiera, więc wszystkie te opcje są wyrzucane przez okno.

Aplikacja, która zawiesza się, jest projektem iOS. Przyjrzałem się this blog post, ale używam *.storyboard, a nie *.xib.

Ponieważ żadna z powyższych metod nie działa, myślę, że mam jakiś plik w moim projekcie, który to powoduje. Jak mogę otworzyć projekt?

Aby wyświetlić pełny dziennik błędów po awarii XCode, patrz: this gist.

+0

Czy to też jest możliwe na innych komputerach Mac? –

+0

Nie wiem - w tej chwili nie mam dostępu do innych komputerów Mac. – Scott

+1

Tylko sugestia - możesz opublikować swój projekt, aby ktoś inny mógł go uruchomić. Prawdopodobnie nie jest idealny, ale dałoby ci miejsce do rozpoczęcia. Nie ukradniemy twojego kodu. Uczciwy (przynajmniej nie będę ...) – Undo

Odpowiedz

6

rm -rf ~/Developer/XCode/UROPv6/Reconstruct.xcodeproj/project.xcworkspace/xcuserdata pracował. Kiedy próbowałem uruchomić git checkout 0ea13d, to powiedział `błąd:

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` 

Więc usunąłem ten folder, a teraz działa.

1

Scott, możesz rozważyć bardziej wszechstronny plik .gitignore. Folder xcuserdata może (powinien być?) Ignorowany przez git w większości przypadków.

Oto przykładowy plik .gitignore, od którego można wykluczyć większość elementów, które nie muszą znajdować się w archiwum, z których niektóre mogą powodować dziwne problemy od czasu do czasu lub które po prostu zajmują przestrzeń w twoim archiwum bez wnoszenia jakiejkolwiek wartości. Ten przykład zawiera wiele starszych plików kontrolnych z Xcode i jego przodków, z którymi możesz nie pomyśleć, że napotkasz, aż pewnego dnia po zaimportowaniu klasy, biblioteki lub frameworku z projektu z głębokimi źródłami.

Połączyłem to i udostępniłem na blogu kilka lat temu (A better sample .gitignore for Xcode iOS and OSX projects) w oparciu o filozofię "jeśli jest to plik tymczasowy, jeśli zwykle nie powinien znajdować się w archiwum (np. Prywatny klucz Sparkle)) lub jeśli po prostu nie jest to konieczne (np. różne pośrednie produkty do budowania), należy je wykluczyć ".

Jeśli nie podoba ci się ten, rozejrzyj się i znajdź taki, który Ci się podoba. Są teraz pochodne tego w całym Internecie (w tym a cool one implemented as an Xcode script, który tworzy plik w dowolnym katalogu, który lubisz), a także inne z różnymi (minimalistycznymi) podejściami filozoficznymi, a niektóre z bardziej szczegółowymi komentarzami.

Możesz umieścić plik .gitignore na najwyższym poziomie dowolnego archiwum git i sprawdzić go, aby wymusić ignorowanie dla wszystkich członków zespołu.Możesz również umieścić go w systemie jako globalny plik ignorowania dla siebie, na wypadek gdybyś utworzył projekt i zapomniał dodać plik ignorowania przed pierwszym zatwierdzeniem.

LINK: How to make a global .gitignore file

przykładowy plik .gitignore dla Xcode iOS i 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

Miałem podobny problem z Xcode 6.1.1. Wypróbowałem wszystkie powyższe rozwiązania oraz kilka innych, które znalazłem w Internecie bezskutecznie. W końcu uciekłem się do binarnego wyszukiwania i znów wszystko zaczęło działać.

  1. Utwórz kopię zapasową projektu Xcode.
  2. Otwórz pakiet projektu Xcode (w Finderze kliknij prawym przyciskiem myszy i wybierz: Pokaż zawartość opakowania).
  3. Otwórz project.pbxproj w edytorze tekstu i sprawdź rozdział PBXFileReference.
  4. Usuń połowę pozycji z listy, usuwając również odpowiednie pozycje z sekcji PBXGroup poniżej. Zapisz plik i otwórz projekt w Xcode. Kontynuuj iterację, aż znajdziesz przedmioty, których dotyczy naruszenie. Na przykład, jeśli Xcode nadal się zawiesza, przywróć kopię zapasową i usuń drugą połowę elementów i spróbuj ponownie.

W moim przypadku problemem był folder z dowiązaniem symbolicznym.

Powiązane problemy