web-dev-qa-db-ja.com

Xcode 6:ビルドがハングし、Interface Builder Cocoa Touch ToolがすべてのRAM

ここまたはGoogleで検索するだけでは解決策を見つけることができない問題があります。

複数の開発者が共有するプロジェクトを構築しています。なんらかの理由で、この問題を抱えているのは私だけです。コードを数回チェックアウトし、Xcodeを再インストールしました。

そのため、プロジェクトをビルドすると、ビルドプロセスが永遠にハングします。 「Interface Builder Cocoa Touch Tool」というプロセスが実行され、Macの制限(16 GB)に達するまでRAM)の蓄積が開始されます。この時点で、プロセスとビルドが失敗します。

コンソールアプリで私はこれを見ます:

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のコンパイル」でスタックしているのがわかります。

ビルドを停止しても、「Interface Builder Cocoa Touch Tool」プロセスは実行を続け、RAMを蓄積します。

ストーリーボードに関連する2つの警告が表示されます。

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

そして、私は資産について2つの警告を見ます:

../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、16 GBのRAMを搭載したCore i7。 OS X 10.9.5。 Xcode 6.0.1.

どんな助けも歓迎です。

ありがとう。

35
HotFudgeSunday

まったく同じ問題がありました。ストーリーボードをXcodeで開くと、Interface Builderタスクがすべてのメモリを消費して、ビーチボールが発生します。ストーリーボードファイルのxmlを編集し、設定することで機能しました

useAutolayout="NO"

ドキュメントノード内。原因として、これはすべての制約を台無しにするため、問題の解決策ではありません(xcodeのバグのようです)が、少なくともストーリーボードを開いてコンパイルできました。

8
knukko

明らかに、破損した.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)
6

Xcodeで、ストーリーボードファイルを右クリックし、[名前を付けて開く]-> [ソースコード]を選択します。ソースコードエディターで、「useAutolayout」の値を「NO」に変更します。次に、ストーリーボードをInterface Builderとして開くことができるはずです。私はこの厄介な問題に遭遇しました。これで、Xcode 5で作成したストーリーボードファイルをすべてXcode 6で開くことができるようになりました。

3
Bin Zhou

5と6の2つのXcodeバージョンをインストールしました。これが原因かどうかはわかりませんが、Appleはこれが人々に起こることを示し、適切なアクションは正しいバージョンが '選択した

xcode-select -p

これで問題が解決したかどうかはわかりませんが、両方のバージョンを削除してからXcode 6をインストールすると、問題は解決したようです。

3
MobileVet

ストーリーボードのファイルインスペクターのBuilds For設定をiOS6以降からiOS8以降に変更することで問題を修正しました。iOS7.0以降で動作するようですが、それをiOS6の設定により、問題が再発します。

2
user2002649

私もOS X 10.9.5のXCode 6.0.1でストーリーボードがフリーズする問題を抱えていました。
ストーリーボードを再度開こうとするため、Xcodeを起動することさえできません。

回復するために私がすることはここにあります(それが再び起こるまで)

重要:ストーリーボードファイルを誤って削除した場合に備えて、必ずバックアップしてください

  1. Xcodeを完全に閉じる
  2. ターミナル(またはFinder)から:[〜#〜] move [〜#〜]ストーリーボードファイルを安全な場所に
  3. XCodeを再起動し、ワークスペースまたはプロジェクトを開きます
  4. Xcodeの場合:不足しているストーリーボードファイルをプロジェクトから削除します
  5. ターミナル(またはFinder)から:[〜#〜] copy [〜#〜]元の場所に戻るストーリーボード
  6. ストーリーボードをXcodeにインポートします(ファイルを追加するか、Finderからドラッグアンドドロップします)

この時点で、ストーリーボードを開いて、ビルドして、実行します...ストーリーボードで作業を続けることができます。その後、再び起こり、同じ手順を繰り返す必要があります。

1
AndyDeveloper

「バイナリ検索」を実行して、どの要素が.xibファイルを破損しているかを見つけました。

毎回、Xcodeを強制終了し、派生データを削除する必要がありました。問題の原因となっているサブビューを見つけたら、削除して再構築しました。

0

私はストーリーボードを使用していませんが、ここの問題はより高いレベルにあり、ストーリーボードに関連していない可能性があると思います。私は同じ問題に直面しました(アプリをビルドしようとするとxcodeがハングし、アクティビティモニターは99%のCPUを使用しているインターフェイスビルダーを表示します)。

以下は私のために働いた-.xcodeprojファイルで、iOS Deployment Targetを6.0から7.0に変更すると即座に修正された。

0
4mo1

Xcode 7.3.1で同じ「ストーリーボードのコンパイル」または「アセットカタログのコンパイル」がハングしていました。アクティビティモニターは、複数の「Interface Builder Cocoa Touch Tool」プロセスが実行されていることを示しました。

次の方法で続行できました。

  1. 問題のあるストーリーボードを閉じる
  2. プロジェクトを閉じる
  3. Xcodeを再起動しますが、プロジェクトを開かないでください
  4. 問題のあるストーリーボードのみを開く
  5. ストーリーボードを閉じてXcodeを再起動する
  6. プロジェクトを開く
0
Jamie McDaniel

私もこの問題を抱えており、ぶら下げの理由を見つけたと思います。ストーリーボードからいくつかの制約を削除し、ビルド段階でこのフリーズが発生しなくなりました。

0
jwrnr

この問題は、インターフェイスビルダーの新しいフォントメカニズムに関連していると思います。プロジェクト内のフォントへのすべての参照を削除すると、問題は解決します。

0
bobeast

これは、Xcode 8.2.1で、ビューベースのテーブルビューで間違ったものをバインドした場合に起こります(p.s.、Core Dataを使用しています)。 Table View CellのパスでテキストフィールドをTable Cell Viewにバインドする必要があったときに、2番目に深いレベルのobjectValue.<attributeName>ビューの値をアレイコントローラーにバインドしていました。列オブジェクトは何にもバインドされず、Table ViewContentarrangedObjectsを介して配列コントローラーにバインドされる必要があります。

これは少なくとも機能し、Xcode(ibtool)が利用可能なメモリをすべて消費してシステムをクラッシュさせることなくストーリーボードをコンパイルします。

0
Rick

ストーリーボードに関連するすべての警告を解決することで、この問題を修正しました。例:1. TableViewで未使用のプロトタイプセルを削除しました。「再利用識別子なし」などの警告が表示されるためです。 2.未使用のView Controllerを削除しました。

0
Simon Tseng