リモートMac miniでGitLab Runnerを構築しiOS自動ビルド

リモートMac miniでGitLab Runner・iOS自動ビルドを構築する方法

読了まで約12分
GitLab Runner iOS自動ビルド CI/CD

iOS開発において、パッケージ作成とリリースは最も時間がかかり、開発者の負担になりやすい工程です。ローカルでのビルドは開発マシンのリソースを占有し、発熱や動作の重さの原因にもなります。リモートのMac miniにGitLab Runnerを立ててCI/CDの自動化パイプラインを構築すれば、こうした悩みを大幅に軽減できます。本記事では、その手順をやさしく解説します。

なぜリモートMac miniで構築するのか

iOSの自動ビルド方式には、ローカルで手動実行する方法、クラウドの共有Runnerを使う方法、そして専用のリモートMacを用意する方法があります。どの方式にも向き・不向きがあります。

観点 ローカル手動ビルド リモートMac mini(CI/CD)
開発効率 低い(作業が止まりやすい) 高い(バックグラウンドで実行可能)
環境の一貫性 ばらつきが出やすい 同じ環境で再現しやすい
ビルド速度 手元のマシン性能に依存 専用マシンで高速化しやすい
チームでの共有 個人環境に依存しがち 誰でも同じ手順で実行できる

使用場景:いつこの構成が役立つか

以下のような場面では、リモートMac mini+GitLab Runnerの組み合わせが特に有効です。

  • 毎日・毎週のTestFlight配布: コミットやマージをトリガーに、自動でアーカイブ〜アップロードまで行いたい場合。
  • 複数人での開発: メンバー全員が同じビルド手順・同じ証明書環境でアプリを出したい場合。
  • ローカルマシンの負荷を抑えたい場合: ビルドはクラウドのMacに任せ、手元のPCではコード編集やデバッグに集中したい場合。

構築の流れ(手順の概要)

大まかには次の4ステップで、リモートMac mini上にGitLab RunnerとiOS自動ビルド環境を整えられます。

  • VNCなどでリモートMac miniに接続する
  • GitLab Runnerをインストールし、プロジェクトに登録する
  • Fastlaneを導入し、ビルド・アップロードを自動化する
  • リポジトリに .gitlab-ci.yml を追加し、CIの流れを定義する

ステップ1:VNCでリモートMac miniに接続する

1リモートMacへの接続方法を確認する

まず、運用するリモートMacにアクセスできる必要があります。VNCMacなどのクラウドMacサービスでは、macOSの「画面共有」やVNCクライアントから、数秒で接続できます。ディスプレイのない「ヘッドレス」構成でも、通常のMacと同じように操作してセットアップできます。

ヒント:VNCMacのM4インスタンスでは、高解像度の画面同期と低遅延での操作が可能です。

ステップ2:GitLab Runnerのインストールと起動

2HomebrewでGitLab Runnerを入れる

リモートMacのターミナルで、次のコマンドを実行してください。

brew install gitlab-runner
gitlab-runner install
gitlab-runner start

installstart は、Runnerをサービスとして常時起動させるための手順です。ユーザー権限で実行する場合は sudo を使わないようにしてください。iOSシミュレーターを動かす場合、ユーザーでログインした状態で動かす必要があるためです。

3RunnerをGitLabプロジェクトに登録する

GitLabの対象プロジェクトで、Settings > CI/CD > Runners を開き、表示される「Registration token」をコピーします。続いて、リモートMacのターミナルで次を実行します。

gitlab-runner register

対話形式で以下を入力します。

  • GitLab instance URL: 利用しているGitLabのURL(例:https://gitlab.com/
  • Registration token: 先ほどコピーしたトークン
  • Executor: shell を選んでください。iOSビルドでは、Xcodeや証明書に直接アクセスするため、shellが適しています。
  • Tag: 例として iosxcode を付けておくと、後でジョブごとに「このRunnerで実行」と指定しやすくなります。

ステップ3:Fastlaneで自動ビルド・アップロードを定義する

4Fastlaneの初期化とレーンの作成

プロジェクトのルートで fastlane init を実行し、Fastfile を用意します。その中に、たとえば lane :beta を定義し、バージョン番号の更新、Archiveの作成、TestFlightへのアップロードまでを一連の処理として書きます。こうすることで、CIから bundle exec fastlane beta を呼び出すだけで、リリース用のビルドと配布が自動化されます。

ステップ4:.gitlab-ci.yml でパイプラインを定義する

リポジトリのルートに .gitlab-ci.yml を置き、どのブランチでどのジョブを動かすかを設定します。

stages:
  - build

build_job:
  stage: build
  tags:
    - ios
  script:
    - bundle install
    - bundle exec fastlane beta
  only:
    - master

tags: - ios は、先ほど登録したRunnerのタグです。これにより、リモートMac miniのRunnerだけがこのジョブを実行するようになります。

証明書と署名まわりのポイント

自動ビルドで最もつまずきやすいのが、証明書とプロビジョニングプロファイルの管理です。Fastlane Match を使うと、専用のGitリポジトリに証明書とプロファイルをまとめて保管し、チーム全員やCI環境から同じセットを参照できます。リモートMac上で fastlane match readonly を実行すれば、ビルドに必要な署名まわりを一括で揃えられます。「証明書が見つからない」といったエラーを防ぐため、できるだけMatchの導入を検討することをおすすめします。

まとめ

リモートMac miniにGitLab Runnerを構築することで、開発マシンの負荷を減らしつつ、安定した・再現性の高い・高速な自動ビルド環境を手に入れられます。VNCMacのM4クラウドMacと組み合わせれば、これまで30分かかっていたパッケージ作成を数分に短縮することも可能です。

まだクラウド上でCI/CDを試していない方は、まずはリモート接続とRunnerの登録から始めてみてください。わずかな設定で、日々のリリース作業がぐっと楽になります。

高性能なiOSビルド環境を、すぐに

VNCMacのM4 Mac miniで、GitLab RunnerとFastlaneに最適化した専用環境を構築し、自動ビルドをさらに高速に。

  • 最新M4チップでXcodeビルドを高速化
  • 必要なツールを揃えた状態でCI/CDをすぐ開始
  • 安定回線でApp Storeへのアップロードもスムーズ