コンテンツへスキップ

デバッグ実行ファイルを無効にしてXcodeの起動を高速化する

開発中のアプリ起動時間を大幅に短縮できるXcodeの隠れたScheme設定。

空白画面の問題

XcodeでRunを押してからアプリが実際に表示されるまでに数秒の遅延を感じたことがあるなら、原因はLLDBデバッガーがプロセスにアタッチしていることが多いです。この間、デバッガーの初期化中にSimulatorは空白画面を表示します。

Comparison of launch times with and without debug executable enabled

設定の場所

この設定はSchemeの設定内にあります:

  1. Product > Scheme > Edit Scheme(またはCmd+Shift+<)に移動する

  2. 左側のRunアクションを選択する

  3. Infoタブに切り替える

  4. Debug executableのチェックを外す

The setting before the change

The setting after unchecking Debug executable

この設定の効果

「Debug executable」が有効(デフォルト)の場合、Xcodeは起動時にLLDBデバッガーをアプリプロセスにアタッチします。これにより、ブレークポイント、デバッグメモリグラフ、ビュー階層デバッガー、コンソールでのpoコマンドが有効になります。

これを無効にすると、デバッガーのアタッチが完全にスキップされます。アプリの起動が目に見えて速くなります。私の経験では、大規模プロジェクトで2〜5秒の差が出ることがあります。print()os_logによるコンソール出力は通常通り動作するため、ログによるデバッグは引き続き可能です。

トレードオフ

デバッガーがアタッチされていない場合、以下が使えなくなります:

  • ブレークポイント(トリガーされません)

  • コンソールでのpoおよびexpressionコマンド

  • メモリグラフおよびビュー階層デバッグツール

そのため、この設定はUIのイテレーション作業に最適です。ビジュアルの微調整を繰り返しながら頻繁に再実行する場面で有効です。ブレークポイントで特定のバグを調査する必要がある場合は、一時的にチェックボックスを再度有効にするだけです。私は普段はオフにしておき、コードをステップ実行する必要があるときだけオンに切り替えています。

参考になりましたか?BlueskyMastodonでフォローして、Swiftのヒントやインディー開発の最新情報をチェックしてください。