2013-05-20 2 views
5

Когда я пытаюсь открыть конкретный проект с помощью XCode, он зависает. Когда он висит, он показывает следующий экран: imageXCode висит при открытии определенного проекта

Другие проекты могут открываться нормально, хотя проект, который висит, тоже открывается, то есть я ничего не могу сделать. Мой процессор работает на полной скорости (начинается вентилятор), и мне нужно выйти из нескольких процессов под названием «Interface Builder Cocoa Touch Tool».

Я пытался ...

  • 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
  • Переустановка XCode.

Невозможно открыть настройки XCode - всегда открывается UROPv6 (проект, зависающий), поэтому все эти опции выбрасываются из окна.

Приложение, которое висит, является проектом iOS. Я посмотрел на this blog post, но я использую *.storyboard, а не *.xib.

Поскольку ни один из вышеперечисленных методов не работал, я думаю, что у меня есть файл в моем проекте, который вызывает это. Как открыть проект?

Полный журнал ошибок при сбое XCode, см. this gist.

+0

Так что он открыт на других компьютерах Mac? –

+0

Я не знаю - на данный момент у меня нет доступа к другим Mac. – Scott

+1

Просто предложение - вы можете опубликовать свой проект, чтобы кто-то другой попытался его запустить. Наверное, не идеально, но это даст вам место для начала. Мы не будем красть ваш код. Честный (по крайней мере, я не буду ...) – Undo

ответ

6

rm -rf ~/Developer/XCode/UROPv6/Reconstruct.xcodeproj/project.xcworkspace/xcuserdata работал. Когда я попытался запустить git checkout 0ea13d, он сказал `ошибка:

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` 

Так я удалил эту папку, и теперь он работает.

1

Скотт, вы можете рассмотреть более полный файл .gitignore. В большинстве случаев папка xcuserdata может быть (должна быть?) Игнорироваться git.

Вот пример файла .gitignore, из которого вы можете начать, что исключает большинство вещей, которые не обязательно должны быть в вашем архиве, некоторые из которых могут время от времени вызывать странные проблемы или просто захватывать пространства в вашем архиве, не внося никакого значения. Этот пример включает в себя множество старых файлов управления от Xcode и его предков, которые вы, возможно, не думаете, что столкнетесь, до одного дня, когда вы импортируете класс, библиотеку или фреймворк из проекта с глубокими корнями.

Я положил это вместе и поделился им в блоге несколько лет назад (A better sample .gitignore for Xcode iOS and OSX projects) на основе философии: «Если это временный файл любого типа, если он обычно не должен быть в архиве (например, закрытый ключ Sparkle), или если это просто необязательно (например, различные продукты промежуточной сборки), исключите это ».

Если вам не нравится этот, взгляните на него и найдите тот, который вам нравится. Теперь есть производные от всего этого в Интернете (в том числе a cool one implemented as an Xcode script, который создает файл в любом каталоге, который вам нравится), а также другие с разными (минималистскими) философскими подходами, а некоторые - с более подробными комментариями.

Вы можете поместить файл .gitignore на верхний уровень любого архива git и проверить его, чтобы обеспечить игнорирование всех членов команды.Вы также можете поместить его в свою систему как глобальный файл игнорирования для себя, если вы создадите проект и забудьте добавить файл игнорирования до первоначальной фиксации.

LINK: How to make a global .gitignore file

образец .gitignore файл для Xcode прошивкой и 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

У меня была аналогичная проблема с Xcode 6.1.1. Я пробовал все вышеперечисленные решения плюс еще несколько, которые я нашел в Интернете, но безрезультатно. Я, наконец, прибег к бинарному поиску и снова начал работать.

  1. Сделайте резервную копию своего проекта Xcode.
  2. Открыть пакет проекта Xcode (в Finder, щелкните правой кнопкой мыши и выберите Показать содержимое пакета).
  3. Открыть проект.pbxproj в текстовом редакторе и изучить раздел PBXFileReference.
  4. Удалите половину предметов в списке, также уберите соответствующие предметы из раздела PBXGroup ниже. Сохраните файл и откройте проект в Xcode. Продолжайте повторять, пока не найдете оскорбительный предмет (ы). Например, если Xcode все еще зависает, восстановите резервную копию и удалите другую половину элементов и повторите попытку.

В моем случае проблема была в символической папке.

Смежные вопросы