82

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

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

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

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

これは Apple のバグである可能性が高いですが、より良い回避策や解決策を持っている人はいますか?

4

10 に答える 10

29

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

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

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

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

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

于 2015-04-10T11:04:10.430 に答える
26

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

于 2015-04-21T19:35:59.373 に答える
15

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

皆様、ご報告ありがとうございます。私たちはこれを追跡し、解決に向けて努力しています。残念ながら、優れた回避策はありませんが、次の 2 つの方法で問題を解決できます。

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

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

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

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

于 2015-04-14T13:25:45.003 に答える
13

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

于 2015-04-09T22:19:39.903 に答える
3

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

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

于 2015-04-10T13:44:54.507 に答える
1

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

于 2016-11-29T15:38:50.280 に答える
1

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

于 2015-04-14T06:47:16.760 に答える
0

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

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

于 2015-04-16T21:03:07.687 に答える