可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I’m having an issue to which I haven’t been able to find a solution just by searching here or on Google.
I’m building a project which is shared by multiple developers. For some reason I’m the only one with this issue. I checked out the code several times and even re-installed Xcode.
So what happens is that when I build the project the build process hangs forever. A process called “Interface Builder Cocoa Touch Tool” runs and starts accumulating RAM until it reached the Mac’s limit (which is 16 GB). At this point, as soon as I see that I kill the process and the build fails.
On the Console App I see this:
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
On Xcode I see the build getting stuck on “Compiling 1 of 1 story board files”, or “Compiling 1 of 1 asset catalogs”.
Even if I stop the build, the “Interface Builder Cocoa Touch Tool” process will continue running and accumulating RAM.
I do see two warnings related to the story board:
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
And I see two warnings for the assets:
../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
But I don’t think these are the cause.
Here are Xcode’s and the Mac’s information:
2.5 Ghz, Core i7 with 16 GB of Ram.
Os X 10.9.5. Xcode 6.0.1.
Any help is more than welcomed.
Thanks.
回答1:
I had the exact same problem: opening the storyboard in xcode results in beach ball with the Interface Builder task consuming all the memory. I got it back working by editing the xml of the storyboard file and setting
useAutolayout="NO"
in the document node. Of cause this is not a solution to the problem (which seems to be a bug in xcode) because it screws all constraints, but at least I could open and compile the storyboard again.
回答2:
Apparently, there's a corrupted .xib file.
I reverted the file that was getting stuck compiling.
I'm researching what's the line that's making it crash.
EDIT
I reproduced the problem in the console:
There is a serious bug ongoing here.
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:
I had two Xcode versions installed, 5 & 6. Not sure if this was the cause, but Apple indicated this does happen with people and that the appropriate action is to ensure that the correct version is 'selected'
xcode-select -p
Not sure this would have fixed the issue or not, but after removing both versions and then installing Xcode 6, things appear to have been resolved.
回答4:
In Xcode, right-click on the storyboard file and select Open As -> Source Code. In the source code editor, change the value of "useAutolayout" to "NO". Then, you should be able to open your storyboard as Interface Builder. I ran into this annoying issue. Now, all of my storyboard files created in Xcode 5 can be open in Xcode 6 now.
回答5:
I fixed the problem by changing the Builds For setting in the File Inspector for the storyboard from iOS6 & Later to iOS8 & Later
It seems to work on iOS 7.0 & later, but changing it back to any of the iOS6 settings makes the problem recur.
回答6:
I too have been having issues with storyboards causing freezes with XCode 6.0.1 on OS X 10.9.5.
I can't even start Xcode because it tries to re-open the storyboard.
Here's what I do to recover (until it happens again)
IMPORTANT: make sure you back up your storyboard file in case you accidentally delete it
- Completely close Xcode
- From a Terminal (or Finder): MOVE your storyboard file to a safe location
- Restart XCode and open your workspace or project
- In Xcode: remove the missing storyboard file from the project
- From a Terminal (or Finder): COPY your storyboard back to its original location
- Import the storyboard to Xcode (Add File or drag-drop from Finder)
At this point everything "usually" works for me: open the storyboard, build, run...
I can keep working with the storyboard until the next time I re-open the project.
Then it happens again and I have to repeat the same steps.
回答7:
I too had this issue and think I have found the reason for the hanging; I removed some constraints from the storyboard and I no longer get this freeze during the build phase.
回答8:
I did a "binary search" to find which element was corrupting my .xib file.
Each time, I had to kill Xcode, delete Derived Data.
Once I found the sub-view that was causing the problem, I removed and reconstructed it.
回答9:
I am not using Storyboards but I think the problem here may be at a higher level and not related to storyboards. I faced the same problem (xcode hangs while trying to build the app, activity monitor shows interface builder using 99% CPU).
The following worked for me -
In the .xcodeproj file, changing the iOS Deployment Target from 6.0 to 7.0 fixed it instantly.
回答10:
I fixed this issue by just resolved all warnings related to storyboard.
For example:
1. I deleted unused prototype cell in TableView, because it will cause warning about something like "No reuse Identifier".
2. I deleted unused view controller.
回答11:
I believe the problem is related to the new font mechanism in interface builder. Remove all references to fonts in your project and I bet the problem goes away.
回答12:
I was getting the same "Compiling Storyboards" or "Compiling Asset Catalog" hang under Xcode 7.3.1. Activity Monitor showed multiple "Interface Builder Cocoa Touch Tool" processes running.
I was able to continue by:
- Closing the offending storyboard
- Closing the project
- Restarting Xcode, but do not open the project
- Open just the offending storyboard
- Closing the storyboard and restarting Xcode
- Open the project
回答13:
This happens for me in Xcode 8.2.1 if I bind the wrong thing in a view-based table view (p.s., I'm using Core Data). I was binding the second-deepest-level Table View Cell
view’s value to my array controller, when I should have been binding the text field to the Table Cell View
, with a path of objectValue.<attributeName>
. The column object should be bound to nothing, and the Table View
Content
should be bound to the array controller via arrangedObjects
.
This, at least, works, and lets Xcode (ibtool
) compile the storyboard without consuming all available memory and crashing the system.