web-dev-qa-db-ja.com

XIBファイルを開いた後、Xcode 6.3がフリーズ/ハングする

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

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

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

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

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

82
picciano

Xcode 6.3.1は、カスタムフォントとIB_DESIGNABLEストーリーボードのビュー。 Mac App Store経由でアップデートすれば、うまくいくはずです。

25
Josh Brown

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

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

私の回避策は xcodeの古いバージョン(Xcode 6.3ベータ版またはXcode 6.2)もインストールして使用し、それを使用してInterface Builderファイルを更新し、6.3で開かないようにします。 プロジェクトツリーのファイルoption + shift + clickを使用して、Xcodeの新しいウィンドウでそれらのStoryboard/XIBを開きます。

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

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

28
James Tang

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

ご報告ありがとうございます。私たちはこれを最後に追跡し、解決するために一生懸命取り組んでいます。残念ながら、私たちは素晴らしい回避策はありませんが、ここにあなたを導くための2つのオプションがあります:

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

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

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

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

15
picciano

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

13
Denis Kildishev

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

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

3
KoCMoHaBTa

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

2
Bart van Kuik

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

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

1
O. Kurnenkov

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

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

enter image description here

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

enter image description here

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

お役に立てれば!

0
LuisCien

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

Appleが修正されたときに、@ IBDesignable行のコメントを外します。

0
user871177