Xcodeはキーストロークごとにストーリーボードを作成し続けます


145

最近、非常に奇妙な状態に入ったストーリーボードを使用したXcodeプロジェクト:Xcodeは、キーを押すたびにプロジェクト全体、特にストーリーボードを構築し続けます。この動作の理由は見つかりませんでした。プロジェクトですべての興味深いファイル(ストーリーボードとプロジェクト)を比較したり、Xcodeで設定したりしていません(たぶん、それが見つからなかったのでしょうか?)。新しいコードを入力すると、CPUは常にストーリーボードの再構築に専念しています。誰かこれを見た?

回答:


415

IB_DESIGNABLEソースヘッダーファイルの定義が原因です。おそらく、IB_DESIGNABLE現在編集しているソースファイルに(暗黙的にも)含まれているヘッダーファイルが含まれている場合にのみ問題が発生します。

IB_DESIGNABLEストーリーボードとソースファイルを継続的に無効にしてコンパイルする方法についての明確な解決策は見つかりませんでした。これを一時的に無効にするには、Xcodeフラグを使用してください。私はまた、周囲しようとしたIB_DESIGNABLE#ifdefマクロが、それらはあっても考慮される#ifdef偽と評価。1つずつコメント化するとIB_DESIGNABLE役立ちますが、多くので実現可能な解決策ではありませんIB_DESIGNABLE

更新

やっとこの迷惑な行動を回避する方法を見つけました。ストーリーボードをアクティブウィンドウで開いた状態で、[エディター]メニューの[ビューの自動更新]を無効にします。これにより、カスタムコードを使用するストーリーボードエディターのビューの更新が停止し、開発が大幅にスピードアップします。ジャストインタイムコンパイルでカスタムコードの視覚的なプレビューを再度表示する必要がある場合は、このオプションを再度有効にします(ストーリーボードを再度開いて再度機能させる必要があるようです)。

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

動作のオン/オフを簡単に切り替えるには、command-option-control-Aなどのキーバインディングをコマンドに追加することができます。Xcodeにキーバインディングを追加するには、[設定]の[コマンドカンマ]をタップし、[キーバインディング]タブを選択し、検索バーを使用してコマンドを見つけ、右側の領域をダブルクリックして目的のキーストロークを追加します。

「それをやめる」アプローチ

または、[ビューを自動的に更新]をオフにし、オンにしないでください

「すべてのビューを更新」の便利なキーストロークを作成します。たとえば、command-option-shift-R

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

作業中は、command-option-shift-Rを時々、または必要に応じてタッチしてください。通常、ストーリーボードで作業するときは、command-option-shift-Rをタッチするだけで済みます。


10
どのようにしてオンになったかはわかりませんが、「ビューを自動的に更新」をオフにすると問題が解決しました
MandisaW 2015

1
Xcode 7.3は、アクティブなエディターがストーリーボードを開いているときに、常にプロジェクトをビルドしています。幸いにも、この答えは私の問題を解決しました。Appleは私を感動させ続けています...
Oleksii Taran

24
Xcodeバージョン8.2.1(8C1002)の問題が解決されました。この答えを見つけて問題を解決したとき、私は涙を止めることができませんでした。私は悪夢の中で2日間過ごし、派生データの削除、プロジェクトのクリーニング、すべてのポッドの再インストールを行いました。(
Appleの

2
おかげで、xcodeはビルドを続け、本当に動揺します。
Chauyan 2017

8
このソリューションはXcode 9でも機能します。ストーリーボードの「ビューを自動的に更新」をオンにすると、常に再構築する必要がなくなります。どうもありがとうございます!
PL

7

私にはこの問題があり、受け入れられた答えは私にとってはうまくいきませんでした。

私が抱えていた問題は、ストーリーボードを常にXCode内の独自のタブで開いたままにして、すばやくアクセスできるようにすることでした。

修正できる唯一の方法は、そのタブを閉じるか、別のファイル(通常のコードファイルなど)を選択してから、XCodeを閉じて再度開くことでした。その後は、キーストロークごとに再構築されなくなりました。

ただし、ストーリーボードを開いて変更を加える必要がある場合は、この問題が再発する可能性があるため、上記のプロセスを繰り返す必要があります。

本当にイライラするので、Appleがこれを修正するまで待ちきれません!

(ノಠ益ಠ)ノ彡┻━┻

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