Xcode 6:生成挂起和界面生成器Cocoa Touch Tool开始分配所有的RAM

我有一个问题,我没有find一个解决scheme,只是通过在这里或谷歌search。

我正在构build一个由多个开发人员共享的项目。 出于某种原因,我是唯一一个这个问题。 我检查了几次代码,甚至重新安装Xcode。

那么会发生什么呢,当我build立这个项目的时候,构build过程会一直挂起。 称为“Interface Builder Cocoa Touch Tool”的进程运行并开始累计RAM,直到达到Mac的极限(16 GB)。 在这一点上,只要我看到我杀了进程,构build失败。

在控制台应用程序,我看到这个:

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上,我看到构build卡住了“编译1个故事板文件之一”,或者“编译1个资产目录中的1个”。

即使停止构build,“Interface Builder Cocoa Touch Tool”进程也将继续运行并累积RAM。

我看到两个与故事板有关的警告:

 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 57x57@2x app icon is required for iPhone apps targeting releases of iOS prior to 7.0 

但我不认为这是事业。

这里是Xcode的和Mac的信息:

2.5 Ghz,Core 16,16 GB RAM。 Os X 10.9.5。 Xcode 6.0.1。

任何帮助都比欢迎。

谢谢。

我有完全相同的问题:在xcode中打开故事板导致使用Interface Builder任务消耗所有内存的沙滩球。 我通过编辑故事板文件的xml和设置来恢复工作

 useAutolayout="NO" 

在文档节点中。 因为这不是问题的解决scheme(这似乎是xcode中的一个错误),因为它解决了所有的限制,但至less我可以打开并重新编译故事板。

显然,有一个损坏的.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) 

我有两个Xcode版本安装,5和6.不知道这是否是原因,但苹果公司表示,这确实发生与人,适当的行动是确保正确的版本是“选定”

 xcode-select -p 

不知道这将解决问题或不,但删除两个版本,然后安装Xcode 6后,事情似乎已经解决。

在Xcode中,右键单击故事板文件并select打开为 – >源代码。 在源代码编辑器中,将“useAutolayout”的值更改为“NO”。 然后,你应该能够打开你的故事板作为Interface Builder。 我遇到了这个烦人的问题。 现在,所有在Xcode 5中创build的故事板文件都可以在Xcode 6中打开。

我通过更改从iOS6&更高版本到iOS8&更高版本的故事板的文件检查器中的“ Builds For”设置来解决此问题。似乎在iOS 7.0和更高版本上工作,但是将其更改回任何iOS6设置会使问题重演。

在OS X 10.9.5上,我也一直在使用XCode 6.0.1冻结故事板。
我甚至无法启动Xcode,因为它试图重新打开故事板。

这是我做的恢复(直到它再次发生)

重要提示:请确保备份您的故事板文件,以防您意外删除它

  1. 完全closuresXcode
  2. 从terminal(或Finder):将您的故事板文件移动到一个安全的位置
  3. 重新启动XCode并打开您的工作区或项目
  4. 在Xcode中:从项目中删除缺less的故事板文件
  5. 从terminal(或Finder):将故事板复制回原来的位置
  6. 导入故事板到Xcode(添加文件或从Finder拖放)

在这一点上,一切“通常”都适用于我:打开故事板,构build,运行…我可以继续使用故事板,直到下一次重新打开项目。 然后再发生,我必须重复相同的步骤。

我也有这个问题,并认为我find了悬挂的原因; 我从故事板中删除了一些约束条件,在构build阶段不再冻结。

我做了一个“二进制search”来查找哪个元素正在破坏我的.xib文件。

每一次,我不得不杀死Xcode,删除派生数据。 一旦find导致问题的子视图,我就删除并重构了它。

我没有使用故事板,但我认为这里的问题可能是在更高的层次上,而不是与故事板有关。 我遇到了同样的问题(xcode在试图构build应用程序时挂起,活动监视器显示使用99%CPU的界面构build器)。

下面的工作对我来说 – 在.xcodeproj文件中,将iOS部署目标从6.0更改为7.0立即修复。

我解决了这个问题,只是解决了与故事板相关的所有警告。 例如:1.我在TableView中删除了未使用的原型单元格,因为它会导致类似“无重用标识符”的警告。 我删除了未使用的视图控制器。

我相信这个问题与界面生成器中的新字体机制有关。 删除项目中的所有字体引用,我敢打赌,问题消失。

我得到了与Xcode 7.3.1一样的“编译故事板”或“编译资产目录”。 Activity Monitor显示多个“Interface Builder Cocoa Touch Tool”进程正在运行。

我能够继续:

  1. closures违规的故事板
  2. closures项目
  3. 重新启动Xcode,但不要打开该项目
  4. 打开只是有问题的故事板
  5. closures故事板并重新启动Xcode
  6. 打开项目

如果我在基于视图的表格视图(ps,我正在使用核心数据)中绑定错误的东西,那么在Xcode 8.2.1中会发生这种情况。 我将第二个最深层的Table View Cell视图的值绑定到了我的数组控制器上,当时我应该用objectValue.<attributeName>的path将文本字段绑定到Table Cell View 。 列对象应该被绑定到什么地方,并且Table View Content应该通过orderedObjects绑定到数组控制器。

这至less可以起作用,并让Xcode( ibtool )编译故事板,而不消耗所有可用的内存并使系统崩溃。