Xcode におけるビルドの種類と便利な使い分け

iOS 開発者の皆さん、 ビルド 、してますか!? (当たり前)
ビルド待ちって筋トレしたくなるくらい暇な時間ですよね。

ビルド待ちの間についつい Twitter や Slack 見てて、気づいたら夜だったなんてこともあったりなかったり。

僕は iOS 開発を初めて 2 ヶ月の初心者ですが、そんな僕から「ビルドの使い分け」をシェアしたいです。
最初は ⌘ + R しか知らなかった僕ですが、今ではその他に 2 つのビルド方法 を使い分けています。

本題

今日紹介するビルド方法は以下の 3 つです。

  • ⌘ + R (Run)
  • ⌘ + ⇧ + R (Build for Running)
  • ⌘ + ⌃ + R (Run without Building)

この 3 つがあれば、以下のような使い分けができます。

  • Run: ビルドして、実機 or シミュレータで動作を確認したいとき
  • Build for Running: ビルドだけして、動作確認はしないとき
  • Run without Building: ビルドはせずに、実機 or シミュレータによる動作の確認だけしたいとき

これで UseCase に応じてキーボードショートカットを覚えて帰っていただいても大いに結構なのですが、せっかくなのでそれぞれがどんなことをしているかを軽く説明しときます。

⌘ + ⇧ + R (Build for Running)

順番が最初と違いますが、まずはこれから。
ここでは ビルドのみ 行います。

ビルドとは、コンパイルしたりレジスタを初期化したりゴニョゴニョやる 下準備 みたいなものです。
これに関してもっと理解したい方は この記事 が参考になります。
ざっくり、コードを変更したら必要になるのがビルドです。

そして、 “Build Succeeded” となって成功する or “Build Faild” となると失敗して終了です。

どんな時に使うかと言うと、

  • コードを変更してとりあえずコンパイルだけしたいとき (エラーが出ないかだけ確認したい)
  • 見た目に関する変更が無くて実機 or シミュレータによる動作確認が不要なとき

に使っています。
次、 ⌘ + ⌃ + R (Run without Building) を説明します。

⌘ + ⌃ + R (Run without Building)

これは知らなかった人は是非知ってください。
なんと ビルド待ち時間が 0 になります。やばいですよね。

このコマンドでは、 Run without Building から分かるように、 ビルドをしません
なのでビルド待ちが 0 になるわけです。

じゃあ何をするかというと、 前回成功したビルド結果を元に実行 します。
ここでの実行とは、実機やシミュレータで動作確認することです。
前回成功したビルドなので、どれだけコードを変更しても反映されません
ここだけは注意して使い分けて下さい。

このコマンドは必ず成功して実行されますが、それはあなたが追加・変更したコードがうまく行っていることとは無関係ということです。

どんな時に使うかと言うと、

  • 実行したがクラッシュしてもう一度実行したいとき
  • とりあえず実機による動作確認がしたいとき

などです。「前回のビルド結果でいいから実行したいとき」ですね。

⌘ + R (Run)

最後、一番知られてるやつです。
Xcode 画面左上の ▶ 押して実行するやつです。

このコマンドでは、 ビルド + 実行 をしています。
今回紹介した中では最も時間がかかる処理です。
ビルド + 実行なので、先に紹介した 2 つのコマンドを直列実行しているということですね。

このコマンドは、

  • コードを変更し、その変更を動作確認したいとき

などに使います。

おまけ

ここでは、 Run に関するコマンドでしたが、RU に変えるとユニットテストに全く同じ感覚で使えます。
さらに RI に変えると Profiling とかいう謎のことにも使えるそうです。僕は使ったことないです。

まとめ

まとめると以下のようになります。

ショートカットコマンド名動作使用例
⌘ + ⇧ + RBuild for Runningビルドのみとりあえずコンパイルだけしたいとき
⌘ + ⌃ + RRun without Building実行のみとりあえず実機による動作確認がしたいとき
⌘ + RRunビルド + 実行コードを変更し、その変更を動作確認したいとき

使い分けてビルド待ちを最小にしましょう!!
くれぐれもビルド待ち中に筋トレしすぎてムキムキにならないように!!

Licensed under CC BY-NC-SA 4.0
最終更新 2022/09/17 15:55 +0900
Built with Hugo
テーマ StackJimmy によって設計されています。