Xcode 6.3は、XIBファイルを開いた後にフリーズ/ハングします


82

Xcode 6.3(リリースバージョン)にアップグレードした後、IB_DESIGNABLEビューを含むXIB / Storyboardファイルを開くたびにXcodeがフリーズするようになりましたカスタムフォントを使用するすべてのプロジェクト用で、カスタムフォントが含まれています(必ずしもそのXIB / Storyboardでそのフォントを参照している必要はありません)。フリーズは、.xibファイルを開いてから他のファイルに切り替えようとした後に発生します。Xcodeがハングし、強制終了する必要があります。

Appleでバグレポートを開きました。(バグ20483867)。

現在、2つの回避策があります。

  1. AppleからXcode6.2をダウンロードして使用します。
  2. カスタムビューヘッダーファイルからIB_DESIGNABLEタグを削除します。

これはおそらくAppleのバグですが、誰かがより良い回避策や解決策を持っていますか?


7
ここでも同じことですが、Interface Builderから他のファイルに切り替えようとすると、Xcodeが完全にフリーズします。すべての IB_DESIGNABLE属性を削除すると、この問題が修正されます。今6.2 FOWに戻ります...
maxkonovalov

1
こっちも一緒。フォルダ〜/ Library / Saved Application State / com.apple.dt.Xcode.savedStateを削除すると役立ちますが、ストーリーボードをもう一度開こうとすると、同じ問題が発生します。
tikhop 2015

「ビューを自動的に更新する」のチェックを外して、クラッシュを防ぐことができるかどうかを確認することもできますか?その場合は、ロックせずに「すべてのビューを更新」できるかどうかを確認できます。
nhgrif 2015

@nhgrifその設定はどこにありますか?
picciano 2015

2
Appleはsysdiagnoseからの出力を要求しました。これが進むにつれて、私はアップデートを提供し続けます。
picciano 2015

回答:


26

Xcode 6.3.1IB_DESIGNABLEは、ストーリーボードのカスタムフォントとビューの問題を修正します。Mac App Storeからアップデートすれば、元気になるはずです。


28

より正確な説明のために編集を提案しました

プロジェクトにカスタムフォントが含まれている場合にのみ発生します。 Storyboard / XIBでそのフォントを参照することなく、IBDesignableカスタムビューを含むStoryboard / XIBにアクセスするだけでフリーズします。

私の回避策は、古いバージョンのXcode(Xcode6.3ベータ版またはXcode6.2)もインストールし、それを使用してInterface Builderファイルを更新し、6.3では決して開かないことです。Xcodeで新しいウィンドウでそれらのストーリーボード/ XIBを開くoption+ shift+clickプロジェクトツリー内のファイル。

フリーズが発生するたびに、このコマンドを使用して、そのプロジェクト専用に保存された状態をクリアします。

rm -rf YourProject.xcodeproj/project.xcworkspace/xcuserdata


3
クリアするためのコマンドxcuserdataは役に立ちます。私のために働きます。
Yevhen Dubinin 2015

5
CocoaPodsを使用している場合は、.xcodeproj rm -rf YourProject.xcworkspace / xcuserdata
Nur Iman

ねえ、私は最近この問題にたくさん遭遇しているので、この問題に対処するのに役立つスクリプトを書きました。CocoaPodsを使用するプロジェクトには最適ですが、自分の環境以外ではテストしていません。この回答に投稿されたソリューションが含まれていますが、単一のプロジェクトとワークスペースの両方を処理する必要がありますgist.github.com/Ziewvater/3190e20b1ace2ab3c3b6。改善できる点があれば教えてください
Ziewvater 2015

15

Appleからの回答:Appleの開発者フォーラムへのリンク

ご報告ありがとうございます。私たちはこれを私たちの側で追跡し、それを解決するために一生懸命取り組んでいます。残念ながら、優れた回避策はありませんが、次の2つの方法で問題を解決できます。

カスタムフォント/ IBDesignableを使用するストーリーボード/ XIBが以前に開いていたためにXcodeが起動時にハングしている場合:開いているプロジェクトのxcodeproj内の「UserInterfaceState.xcuserstate」ファイルを削除すると、次のようなパスになります:My App .xcodeproj / project.xcworkspace / xcuserdata / yourusername.xcuserdatad / UserInterfaceState.xcuserstate

Xcode6.3でカスタムフォントを含むストーリーボード/ XIBファイルを本当に編集する必要がある場合:

  1. ストーリーボード/ XIBファイルのコピーをバックアップとして作成します
  2. ストーリーボード/ XIBファイルをテキストエディタで開きます
  3. カスタムフォントを参照する「fontDescription」という名前のXMLタグを削除します。例:。このタグを削除すると、フォントが標準のシステムフォントに戻ります。
  4. カスタムフォントを使用してオブジェクトへのアウトレットを作成し、実行時にそれらのオブジェクトのフォントをカスタムフォントに設定します。たとえば、ビューコントローラのviewDidLoadまたはawakeFromNibのオーバーライドで

重要な注意:ストーリーボード/ XIBファイルを手動で編集することはお勧めしません。ただし、この問題により多くのユーザーがドキュメントを編集できなくなっていることを認識しており、手動で編集するとドキュメントが破損する可能性があるという警告を回避できるようにしたいと考えています。


9
これはすべての種類の陽気です。「ストーリーボード/ XIBファイルを本当に編集する必要がある場合」
user1021430 2015

13

私にとっても同じ問題です。IB_DESIGNABLEを削除すると、問題が修正されます。iOS8.3を搭載したデバイスでアプリをテストしているため、6.2に戻ると機能しません-Xcode6.2はiOS8.3を搭載したデバイスでアプリを実行できません:(


ここでも同じ問題。8.3が必要で、新しいSwift機能もいくつか使用しています。
クリスチャン・A.Strømmen

それでも作業を完了する必要があり、たまたまノックアラウンドが発生した場合の代替手段は、Xcode6.3ベータの1つに戻ることです。ビルド6D532l(ベータ3だと思います)がハングしないことを確認できます。
Samscam 2015

3

別の回避策は、ファイル拡張子をすべてのフォントファイルに変更し、変更したファイル名をInfo.plistからロードすることです。このようにして、IBDesignablesを保持し、カスタムフォントを使用できますが、InterfaceBuilderのフォントピッカーでそれらを表示することはできません。

Interface Builderから設定されたすべてのカスタムフォントは引き続き機能しますが、それらを変更したり、別のカスタムフォントを設定したりするには、コードから行うか、テキストエディタからストーリーボードまたはペン先ファイルを順番に変更する必要があります。フォント名を設定します。


これは私のために働いた。保存された状態/ xcuserdataを削除した後でも、次にストーリーボードを開いたときに再び壊れることがわかりました。フォントの拡張子を削除してInfo.plistを更新すると、うまく機能するようです
John Martin

@piccianoが投稿した手順を実行した後、これは私にも役立ちました
Albert Bori

2

答えはありませんが、強制終了して再起動するだけで、まったく同じ状況でXcodeが再起動されることがわかりました。Xcodeを再起動できるようにするには、フォルダを削除します~/Library/Saved Application State/com.apple.dt.Xcode.savedState


1
ここでのもう1つのオプションは、プロジェクトファイルをFinder(.xcodeprojまたは.xcworkspace)に配置する->パッケージの内容を表示する->そこにある「xcuserdata」フォルダーを削除することです。XcodeUIの状態が復元されます。
maxkonovalov 2015

ユーザーデータを破壊することは、私のXcode 6.3の問題で私を助けた
サシャが開催された

1

このバグは、本日リリースされた6.4Xcodeベータ版で修正されています。開発センターに移動し、ログインしてダウンロードします。


Xcode 6.3の新しいリリース(例:6.3.1)を待つことをお勧めします。ベータリリースで開発する余裕がないためです。修正されたものと比較して、より多くの問題が発生する可能性があるためです。
KoCMoHaBTa 2015

3
6.4をダウンロードしましたが、それでもクラッシュします。
ジブラ2015

1

Xcode 8.1-ナビゲーション付きのビューがある場合(私の場合は上部のバーが不透明なナビゲーションバーでした)、プロパティ「上部のバー」を「なし」に設定してみてください。


これを間違った質問に追加したのではないかと思います。
picciano 2016年

@piccianoいいえ、これは実際には正しいです。それが私のために働いた唯一のものでした。詳細については、私の回答を参照してください
LuisCien 2017

0

回避策として、これを使用するいくつかのカスタムコンポーネントの@IBDesignableマークアップをすべてコメントアウトしました。そうすると、はい、Interface Builderの設定を微調整することができなくなりますが、少なくともXCodeがクラッシュすることなく.xibファイルを開くことができました。

Appleが修正を加えたときに、これらの@IBDesignable行のコメントを解除します。


0

@O。クルネンコフの答えは私のために働いた。IB_Designableやカスタムフォント、Cocoapodsなどとは何の関係もありませんでした。

何らかの理由で「不透明なナビゲーションバー」があると、nibファイル(storyboardsには影響しないようです)のy位置が絶えず変化します。これはSize Inspectory位置が0から​​64の間でちらつく場所で確認できます。これは、Xcode 8.2(8C38)で発生しています。

ここに画像の説明を入力してください

ここでの私の推測では、これによりXcodeは常にレイアウトを更新するため、リソースが消費され、ハング/フリーズします。

ここに画像の説明を入力してください

解決策は、「半透明」オプション、推定、またはなしのいずれかを使用することです。

お役に立てれば!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.