Подтвердить что ты не робот

Xcode 6: Build hangs и Interface Builder Cocoa Touch Tool начинает выделение всей ОЗУ

У меня возникла проблема, с которой я не смог найти решение, просто выполнив поиск здесь или в Google.

Я создаю проект, который разделяют несколько разработчиков. По какой-то причине Im единственный с этой проблемой. Я проверил код несколько раз и даже переустановил Xcode.

Так что происходит, так это то, что когда я строю проект, процесс сборки висит навсегда. Процесс под названием "Interface Builder Cocoa Touch Tool" запускается и начинает накапливать оперативную память, пока не достигнет предела Mac (16 ГБ). На этом этапе, как только я вижу, что я убиваю процесс, и сборка не выполняется.

В приложении консоли я вижу следующее:

2014-10-02 4:45:16.013 PM Interface Builder Cocoa Touch Tool[875]: BUG in libdispatch client: kevent[EVFILT_VNODE] add: "Bad file descriptor" - 0x9
2014-10-02 4:45:17.956 PM Interface Builder Cocoa Touch Tool[875]: assertion failed: 13F34: libxpc.dylib + 29453 [75E30F22-514B-3A20-B82C-EDA43AF5C35C]: 0x8d

В Xcode я вижу, что сборка застряла на "Компиляции 1 из 1 файла истории досок" или "Компиляция 1 из 1 каталогов активов".

Даже если я остановлю сборку, процесс "Интерфейс Builder Cocoa Touch Tool" продолжит работу и аккумулирует ОЗУ.

Я вижу два предупреждения, связанные с доской истории:

Base.lproj/MainStoryboard.storyboard Frame for "Scroll View" will be different at run time.
Base.lproj/MainStoryboard.storyboard: warning: Unsupported Configuration: Prototype table cells must have reuse identifiers

И я вижу два предупреждения для активов:

../Images-2.xcassets: A 57x57 app icon is required for iPhone apps targeting releases of iOS prior to 7.0
../Images-2.xcassets: A [email protected] app icon is required for iPhone apps targeting releases of iOS prior to 7.0

Но я не думаю, что это причина.

Вот информация о Xcodes и Mac:

2,5 ГГц, Core i7 с 16 ГБ ОЗУ. Os X 10.9.5. Xcode 6.0.1.

Любая помощь более чем приветствуется.

Спасибо.

4b9b3361

Ответ 1

У меня была такая же проблема: открытие раскадровки в xcode приводит к пляжному мячу с задачей Interface Builder, которая использует всю память. Я вернул его, отредактировав xml файла раскадровки и установив

useAutolayout="NO"

в документе node. Причина в том, что это не решение проблемы (которая, кажется, ошибка в xcode), потому что она закручивает все ограничения, но по крайней мере я могу снова открыть и скомпилировать раскадровку.

Ответ 2

По-видимому, есть поврежденный файл .xib. Я вернул файл, который застрял в компиляции. Я исследую, что линия, из-за которой он падает.

ИЗМЕНИТЬ

Я воспроизвел проблему в консоли: Здесь существует серьезная ошибка.

Felipes-MacBook-Pro:FitMob-ios fbaytelm$     /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ibtool --target-device iphone --errors --warnings --notices --module fitmobAppStore --minimum-deployment-target 7.0 --output-partial-info-plist /Users/fbaytelm/Library/Developer/Xcode/DerivedData/fitmob-fpoxwngwxzwfqrebczuslduvfozr/Build/Intermediates/fitmob.build/Debug-iphonesimulator/fitmobAppStore.build/FMSplashViewController-PartialInfo.plist --auto-activate-custom-fonts --output-format human-readable-text --compile /Users/fbaytelm/Library/Developer/Xcode/DerivedData/fitmob-fpoxwngwxzwfqrebczuslduvfozr/Build/Products/Debug-iphonesimulator/fitmobAppStore.app/FMSplashViewController.nib /Users/fbaytelm/Documents/workspace/FitMob-ios/FitMob/Classes/Views/Common/FMSplashViewController.xib
2014-10-10 01:38:48.386 ibtoold[23113:213948] [MT] DVTAssertions: ASSERTION FAILURE in /SourceCache/IDEInterfaceBuilder/IDEInterfaceBuilder-6249/InterfaceBuilderKit/Utilities/IBAbstractMessageChannelInterfaceBuilderToolProxy.m:40
Details:  Failed to determine the value for availableFonts of UIFont.

Encountered an error communicating with Interface Builder Cocoa Touch Tool. If you choose to file a crash report or Radar for this issue, please check Console.app for crash reports for "Interface Builder Cocoa Touch Tool" and include their content in your crash report.

Exception name: IBRemoteToolFailureException
Exception reason: Interface Builder Cocoa Touch Tool crashed

Last command:
valueForKeyPath:ofClassWithName:resultMarshaller:resultMarshallerContext:

Backtrace of last command:
  0  0x000000010d5dc3e1 (in IDEInterfaceBuilderCocoaTouchIntegration)
  1  0x000000010d5a4cd1 IBAskClassInTargetRuntimeForValueForKeyPathUsingResultMarshallerWithContext (in IDEInterfaceBuilderCocoaTouchIntegration)
  2  0x000000010d5a4b38 IBAskClassInTargetRuntimeForValueForKeyPathUsingResultMarshaller (in IDEInterfaceBuilderCocoaTouchIntegration)
  3  0x000000010d5d7bae (in IDEInterfaceBuilderCocoaTouchIntegration)
  4  0x000000010d5d7a35 (in IDEInterfaceBuilderCocoaTouchIntegration)
  5  0x000000010d5d8873 (in IDEInterfaceBuilderCocoaTouchIntegration)
  6  0x000000010d64cb26 (in IDEInterfaceBuilderCocoaTouchIntegration)
  7  0x000000010d67b46b IBUIValidateFontDescription (in IDEInterfaceBuilderCocoaTouchIntegration)
  8  0x000000010d6e9fe7 (in IDEInterfaceBuilderCocoaTouchIntegration)
  9  0x000000010762177f -[IBDocumentIssueGenerator updateIssuesForMembers:] (in IDEInterfaceBuilderKit)
 10  0x0000000107622790 -[IBDocumentIssueGenerator validateIssues:] (in IDEInterfaceBuilderKit)
 11  0x000000010667f37e -[DVTDelayedInvocation runBlock:] (in DVTFoundation)
 12  0x000000010667f903 -[DVTDelayedInvocation invokeIfNeeded] (in DVTFoundation)
 13  0x000000010762289b -[IBDocumentIssueGenerator warnings] (in IDEInterfaceBuilderKit)
 14  0x00000001065aebbb (in ibtoold)
 15  0x00000001065a130f (in ibtoold)
 16  0x00000001065a4b21 (in ibtoold)
 17  0x00000001065aa3f7 (in ibtoold)
 18  0x00000001065aa947 (in ibtoold)
 19  0x00000001065aa817 (in ibtoold)
 20  0x0000000106599d4f (in ibtoold)
 21  0x00000001065a9fe1 (in ibtoold)
 22  0x00000001065a9238 (in ibtoold)
 23  0x00007fff90ff15c9 start (in libdyld.dylib)

Exception backtrace:
(null)
Exception info:{
    IBUnderlyingError = "Error Domain=IBMessageChannelErrorDomain Code=4 \"Failed to communicate with Interface Builder\" UserInfo=0x7fe7fbf43020 {NSLocalizedDescription=Failed to communicate with Interface Builder, NSLocalizedFailureReason=Interface Builder Cocoa Touch Tool crashed}";
}

Function: void IBAssertMarshallingFailure(NSString *__strong, NSString *__strong, NSString *__strong)
Thread:   <NSThread: 0x7fe7f941adf0>{number = 1, name = main}
Hints: None
Backtrace:
  0  0x00000001067982e4 -[DVTAssertionHandler handleFailureInFunction:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
  1  0x0000000106797a7b _DVTAssertionHandler (in DVTFoundation)
  2  0x0000000106797cde _DVTAssertionFailureHandler (in DVTFoundation)
  3  0x0000000107676973 IBAssertMarshallingFailure (in IDEInterfaceBuilderKit)
  4  0x000000010d5a4e1c IBAskClassInTargetRuntimeForValueForKeyPathUsingResultMarshallerWithContext (in IDEInterfaceBuilderCocoaTouchIntegration)
  5  0x000000010d5a4b38 IBAskClassInTargetRuntimeForValueForKeyPathUsingResultMarshaller (in IDEInterfaceBuilderCocoaTouchIntegration)
  6  0x000000010d5d7bae (in IDEInterfaceBuilderCocoaTouchIntegration)
  7  0x000000010d5d7a35 (in IDEInterfaceBuilderCocoaTouchIntegration)
  8  0x000000010d5d8873 (in IDEInterfaceBuilderCocoaTouchIntegration)
  9  0x000000010d64cb26 (in IDEInterfaceBuilderCocoaTouchIntegration)
 10  0x000000010d67b46b IBUIValidateFontDescription (in IDEInterfaceBuilderCocoaTouchIntegration)
 11  0x000000010d6e9fe7 (in IDEInterfaceBuilderCocoaTouchIntegration)
 12  0x000000010762177f -[IBDocumentIssueGenerator updateIssuesForMembers:] (in IDEInterfaceBuilderKit)
 13  0x0000000107622790 -[IBDocumentIssueGenerator validateIssues:] (in IDEInterfaceBuilderKit)
 14  0x000000010667f37e -[DVTDelayedInvocation runBlock:] (in DVTFoundation)
 15  0x000000010667f903 -[DVTDelayedInvocation invokeIfNeeded] (in DVTFoundation)
 16  0x000000010762289b -[IBDocumentIssueGenerator warnings] (in IDEInterfaceBuilderKit)
 17  0x00000001065aebbb (in ibtoold)
 18  0x00000001065a130f (in ibtoold)
 19  0x00000001065a4b21 (in ibtoold)
 20  0x00000001065aa3f7 (in ibtoold)
 21  0x00000001065aa947 (in ibtoold)
 22  0x00000001065aa817 (in ibtoold)
 23  0x0000000106599d4f (in ibtoold)
 24  0x00000001065a9fe1 (in ibtoold)
 25  0x00000001065a9238 (in ibtoold)
 26  0x00007fff90ff15c9 start (in libdyld.dylib)

Ответ 3

У меня было две версии Xcode, 5 и 6. Не уверен, что это было причиной, но Apple указала, что это происходит с людьми, и что соответствующее действие состоит в том, чтобы убедиться, что правильная версия "выбрана"

xcode-select -p

Не уверен, что это устранило бы проблему или нет, но после удаления обеих версий и установки Xcode 6 все, кажется, было разрешено.

Ответ 4

В Xcode щелкните правой кнопкой мыши файл раскадровки и выберите Open As → Source Code. В редакторе исходного кода измените значение "useAutolayout" на "NO". Затем вы сможете открыть раскадровку в качестве Interface Builder. Я столкнулся с этой досадной проблемой. Теперь все мои файлы раскадровки, созданные в Xcode 5, теперь можно открыть в Xcode 6.

Ответ 5

Я исправил проблему, изменив настройку Builds For в File Inspector для раскадровки с iOS6 и позже на iOS8 и позже Кажется, что это работает на iOS 7.0 и более поздних версиях, но изменение его на любой из настроек iOS6 заставляет проблему вернуться.

Ответ 6

У меня также возникли проблемы с раскадными версиями, вызывающими замораживание с XCode 6.0.1 на OS X 10.9.5.
Я даже не могу запустить Xcode, потому что он пытается повторно открыть раскадровку.

Вот что я делаю, чтобы восстановить (пока это не повторится)

ВАЖНО: убедитесь, что вы создали резервную копию своего файла раскадровки, если вы случайно удалили его.

  • Полностью закрыть Xcode
  • От терминала (или Finder): ПЕРЕМЕЩИТЕ файл раскадровки в безопасное место.
  • Перезапустите XCode и откройте рабочую область или проект.
  • В Xcode: удалите отсутствующий файл раскадровки из проекта
  • Из терминала (или Finder): КОПИРУЙТЕ свою раскадровку в исходное местоположение.
  • Импортируйте раскадровку в Xcode (добавьте файл или перетащите его из Finder)

В этот момент все "обычно" работает для меня: откройте раскадровку, создайте, запустите... Я могу продолжать работать с раскадрой, пока в следующий раз я не открою проект. Затем это происходит снова, и я должен повторить те же шаги.

Ответ 7

У меня тоже была эта проблема, и я подумал, что нашел причину для повешения; Я удалил некоторые ограничения из раскадровки, и я больше не получаю это замораживание во время фазы сборки.

Ответ 8

Я сделал "двоичный поиск", чтобы найти, какой элемент искажал мой .xib файл.

Каждый раз мне приходилось убивать Xcode, удалять Derived Data. Как только я обнаружил, что подпункт вызывает эту проблему, я удалил и восстановил ее.

Ответ 9

Я не использую раскадровки, но я думаю, что проблема здесь может быть на более высоком уровне и не связана с раскадрой. Я столкнулся с такой же проблемой (xcode зависает при попытке создания приложения, монитор активности показывает построитель интерфейса с использованием 99% CPU).

Следующие работали для меня - В файле .xcodeproj изменение цели развертывания iOS с 6.0 до 7.0 было исправлено мгновенно.

Ответ 10

Я исправил эту проблему, просто разрешив все предупреждения, связанные с раскадрой. Например: 1. Я удалил неиспользуемую ячейку прототипа в TableView, потому что это вызовет предупреждение о чем-то вроде "Нет идентификатора повторного использования". 2. Я удалил неиспользуемый контроллер вида.

Ответ 11

Я считаю, что проблема связана с новым механизмом шрифтов в построителе интерфейса. Удалите все ссылки на шрифты в вашем проекте, и я уверен, проблема уходит.

Ответ 12

Я получал одинаковые "компиляции раскадровки" или "Компилировать каталог активов" под Xcode 7.3.1. Монитор активности показал несколько запущенных процессов Interface Builder Cocoa Touch Tool.

Мне удалось продолжить:

  • Закрытие раскадровки с нарушением
  • Закрытие проекта
  • Перезапуск Xcode, но не открывайте проект
  • Откройте только оскорбительную раскадровку
  • Закрытие раскадровки и перезапуск Xcode
  • Откройте проект

Ответ 13

Это происходит для меня в Xcode 8.2.1, если я привяжу неверную вещь в представлении таблицы на основе представления (p.s., я использую Core Data). Я привязывал значение просмотров Table View Cell второго уровня глубины к моему контроллеру массива, когда мне следовало привязать текстовое поле к Table Cell View, с пуском objectValue.<attributeName>. Объект столбца должен быть привязан к нулю, а Table View Content должен быть привязан к контроллеру массива через arrangedObjects.

Это, по крайней мере, работает и позволяет Xcode (ibtool) компилировать раскадровку, не потребляя всю доступную память и разбивая систему.