ユニットテストやクラッシュレポートの確認を続けているうちに、「コードをプッシュするたびに自動でビルド・テストが走ってくれたら楽なのに」と思うようになり、Xcode Cloudというサービスを試してみることにしました。
1. 「CI/CD」という言葉の意味がそもそも分かっていなかった
存在は聞いたことがあったものの、CI/CD(継続的インテグレーション・継続的デリバリー)という言葉自体をなんとなくでしか理解していませんでした。
CI(継続的インテグレーション): コードの変更を取り込むたびに、自動でビルド・テストを実行する
CD(継続的デリバリー): テストを通過したら、自動で配布(TestFlight等)まで行う
「人がビルドボタンを押す」という当たり前の作業を、Gitへのプッシュをきっかけに自動化する仕組みなのだと理解してから、なぜ便利だと言われているのかが腑に落ちました。
2. ワークフローの設定画面で何を選べばいいか分からなかった
Xcode内の「Xcode Cloud」の設定画面を開くと、「ワークフロー」を作る画面が出てきたのですが、選択肢の意味が分からず、最初はデフォルトのまま進めて失敗しました。
開始条件: どのブランチへのプッシュで起動するか
アクション: ビルドのみ / テストも実行 / TestFlightへの配布も行う
最初から配布まで自動化しようとして、必要な証明書設定が不足しエラーになったため、まずは「ビルドとテストの実行だけ」に絞ったワークフローから始めることにしました。段階的に自動化の範囲を広げていく方が、原因の切り分けもしやすいと学びました。
3. 無料で使える範囲の考え方を誤解していた
Xcode Cloudには無料枠があるのですが、「無制限に使える」と誤解していて、ビルドのたびに時間を消費する仕組みだと後から知りました。
無料枠: 1ヶ月あたり一定時間のビルド時間まで無料
毎回のちょっとした変更でも自動ビルドが走る設定にしていたため、思ったより早く消費してしまうことに気づきました。すべてのブランチ・すべてのプッシュで自動実行するのではなく、メインブランチへのマージ時だけ実行するように条件を絞ることで、無駄な消費を抑えられると分かりました。
4. テストが自動で通ることの安心感を実感した
ユニットテストを書き始めたばかりだった自分にとって、Xcode Cloudを設定してからは、コードをプッシュするたびに自動でテストが実行され、結果がメールで届くようになりました。
「テストを書いたのに実行し忘れる」という、地味だが起こりがちな問題が構造的になくなったのは、想像していた以上の効果でした。自動化そのものよりも、「うっかり忘れる余地をなくす」という点に一番の価値を感じています。
まとめ
- CI/CDは「コードの変更のたびに、ビルド・テスト・配布を自動で行う仕組み」だと理解すると導入の目的がはっきりする
- 最初から配布まで自動化しようとせず、まず「ビルドとテストの実行」だけの小さなワークフローから始めるとよい
- 無料枠にはビルド時間の上限がある。全てのプッシュで自動実行せず、メインブランチへのマージ時などに条件を絞ると消費を抑えられる
- 自動化の一番の効果は、「テストを実行し忘れる」といったうっかりミスの余地そのものをなくせること
一人で開発していると省略しがちな仕組みですが、少しの設定の手間で「うっかり」を防げるのは、個人開発者にとってこそ価値があると感じました。
本記事は生成AI(Claude)を活用して執筆・編集しています。内容は実体験に基づき、執筆者本人が確認・監修しています。


コメント