コードが変更されると(ファイルは.pchにありません)、プロジェクト全体が毎回再コンパイルされます。
コードが変更されると(ファイルは.pchにありません)、プロジェクト全体が毎回再コンパイルされます。
回答:
2017/1/2アップデート
この問題はXcode 8.2.1では解決されていません(私のプロジェクト用)
生き残る方法?
Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)
アップデート2016/12/17
この問題はXcode 8.2では解決されていません。
アップデート2016/12/12
コーディングするアトムとビルドしてデバッグするコマンドラインは、私の選択です。Appleがこの正当なバグをすぐに修正することを願っています。
アップデート2016/12/04
この問題はXcode 8.2(beta 2)で解決されたようです。
しかし、私にとっては解決されていないため、Xcode 8.2を使用してもこの問題に直面します。あなたはそれを試すことができます(Xcode8.2ベータ2をここからダウンロードしてください)
ビルドシステム•小さな変更のみが発生した場合、Xcodeはターゲット全体を再ビルドしません。(28892475)
古い答え: これは回避策です:
「ビルド設定」タブ→「C言語方言」→「コンパイラデフォルト」に変更。
「C言語方言」が「コンパイラデフォルト」ではなく「GNU99」に設定されていました。以前の標準はGNU99でしたが、現在はそうではありません。ある時点で、Xcodeはライブラリプロジェクト設定を正しく移行しなかったため、GNU99に設定されました。それをGNU99に変更すると、毎回すべてのコードの再コンパイルが停止しました。
[製品]-> [スキーム]-> [スキームの編集]に移動します。左側の列にビルドを選択し、チェックを外し、「暗黙の依存関係を検索します」
ただし、プロジェクトを初めてビルドするときは、このフラグをチェックしたままにする必要があります。
私の修正は、ストーリーボードを閉じるだけでした。ソースファイルをアシストエディターで開き、ストーリーボードファイルも開きました(ストーリーボードを閉じていました-変更を加えていなかったため)不要なコンパイルをすべて削除しました
更新しました
私が行うことができた単一の最大の改善は、プロジェクトのモジュール化でした。他のほとんどすべてのクラスで使用されているORMレイヤーを具体的にモジュール化します。そのコードをプロジェクト内の別のターゲットに移動し、それをモジュールとしてインポートすることで、コンパイル時間を大幅に改善することができました。Xcodeは、ビルドを行うときに不要なファイルを再コンパイルすることを決定しなくなりました。
次に、高速増分デバッグビルドに単一ファイルコンパイル方法を使用します。
このリンクには、コードのリファクタリング、https: //medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5など、他にもいくつかの良い提案があり ます。
古い
それでもXcode 9で常に問題が発生しています。多くの人と同じように、多くのソースファイルを含む大規模なSwift 4 / cocoapodsプロジェクトに取り組んでおり、毎回すべてのファイルを再コンパイルすることに腹を立てています。
これまでのところ、私は次の設定で最良の結果を得ています。私はあなたがそれを試してみて、それがあなたのためにどのように機能するか見ることを勧めます。
カスタムのユーザー定義ビルド設定を追加しました、
注:モジュール全体を最適化するためのカスタムユーザー定義設定はありません。
この問題を修正したと思われるプレフィックスヘッダーに関するコードをいくつか変更しました。実際にどれがトリックを実行したかはわかりませんが、他の誰かを助けることを期待して、それらすべてを共有します。プレフィックスヘッダーが設定されていない場合、これは問題ではありません(または問題は多面的です)。
@import MyModule
。(私にとって、これとステップ1は同じものでした。)それでもうまくいかない場合は、プレフィックスヘッダーからインポートをいくつか削除してみてください。何かがトリップしている可能性があります...
https://forums.developer.apple.com/thread/62737によると、彼らは積極的に取り組んでいるようですが、回避策は
HEADERMAP_USES_VFS = YES
ターゲットのビルド設定の下(プロジェクト->ターゲット->ビルド設定->ユーザー定義)。
このソリューションは、私にとって今日は常に機能しましたが、先月は他のソリューションが一貫して機能していませんでした。
編集:それでも時にはすべてを再コンパイルしますが、この設定を定義すると、実行頻度が大幅に低下するようです。
@IBDesignable
私の特定のケースのXcodeビルドプロジェクトで、ディレクティブに関するすべてのコードを常にチェックしてください。 ストーリーボードにこの@IBDesignable
属性が含まれているビューがあったためです。もう1つは、ストーリーボードを別のウィンドウ(タブではなく)で開いて、すべてのシミュレーターのXcode makeビルドを永久にプッシュすることです。
@IBDesignable
ディレクティブを使用しています...特に注意すべき点はありますか?
Madhuri Maneはこれに関して完全に正しいです。もう少し明確にするために、注意すべきいくつかの重要なポイント:
これは、ターゲットが依存するライブラリ/フレームワークに暗黙的な依存関係がある場合にのみ適用されます。
「暗黙的な依存関係の検索」が無効になっている場合:
結果:アプリケーションターゲットをビルドする前にライブラリはビルドされません。アプリケーションターゲットをビルドできません。
修正:2番目のシナリオが発生しないようにするには、必要なターゲットをターゲットリストに追加して、正しく順序付けする必要があります。
トピックの出典と詳細:https : //pewpewthespells.com/blog/managing_xcode.html#scheme-action
プロジェクト全体が1つのターゲット内にあり、コンパイルに4分かかる場合、フレームワークに分割して上記を活用するか、コンパイルがどこで遅れるかを理解する以外は、これについてできることはほとんどありません。PaintCodeのようなものを使用しているか、UIKitコードの大きなチャンクをすばやく持っている場合は、Objective-cに変更すると、コンパイルがはるかに速くなります
Appleは昨日Xcodeの新しいベータ版をリリースしました(11月14日)
Xcode 8.2 beta 2
また、この問題はリリースノートで解決済みとしてマークされています。
ビルドシステム
•小さな変更のみが発生した場合、Xcodeはターゲット全体を再構築しません。(28892475)
それは私のために働いています。ビルド速度はいつものように戻ってきました。この問題に直面しているすべての人は、それを試してみてください!
Swiftファイルに変更を加えた場合は、アプリのビルドを開始します。最後のタブに移動し、ビルドログをクリックします。「依存関係の確認」の段階でビルドを停止し、再度実行します。2回目の実行では、変更したファイルのみがビルドされます。正しく行われれば、それは毎回機能することがわかりました。プロジェクト設定を変更する必要はありません。
これはXcodeのバグのようです。
アプリがフルビルドを実行しているのを確認したら、ビルドを停止して、このトリックを再試行してください。
コードに変更を加えていない場合は、CMD + CTRL + Rを使用して、デバッガーをアタッチするアプリをビルドせずに実行します。アプリを作成しませんが、不要な時間を節約できます。
1.プロジェクトに移動します2.ビルド設定をクリックします3.デバッグのためにOptimizationLevelがNoneに設定されていることを確認します。4.「ユーザー定義設定の追加」をクリックします。5. SWIFT_WHOLE_MODULE_OPTIMIZATIONをYESに設定します。
xcodeのコンパイル時間を増やすには、IRAMDISK(仮想メモリディスク)を利用できます。コンパイル時間を短縮するための非常に便利で効果的な手段。
また、頻繁に使用するアプリケーションの高速化にも使用できます。
ダウンロードして使用するには、次のリンクを参照してください:http : //iramdisk.findmysoft.com/mac/