正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

チュートリアル: GitLab Mobile DevOpsでiOSアプリをビルドする

このチュートリアルでは、GitLab CI/CDを使用して、iOSモバイルアプリをビルドし、認証情報で署名し、アプリストアに配布するパイプラインを作成します。

モバイルDevOpsを設定するには:

  1. ビルド環境をセットアップする
  2. fastlaneでコード署名を構成する
  3. Apple Storeのインテグレーションとfastlaneでアプリ配布をセットアップする

はじめる前

このチュートリアルを開始する前に、以下を確認してください:

  • CI/CDパイプラインへのアクセス権を持つGitLabアカウント
  • GitLabリポジトリにあるモバイルアプリのコード
  • Appleデベロッパーアカウント
  • fastlaneがローカルにインストールされている

ビルド環境をセットアップする

GitLabホストされたRunnerを使用するか、ビルド環境を完全に制御するために自己管理Runnerをセットアップします。

  1. .gitlab-ci.ymlファイルをリポジトリのルートに作成します。

  2. サポートされているmacOSイメージを追加して、macOS GitLabホストされたRunner (ベータ) でジョブを実行します:

    test:
      image: macos-14-xcode-15
      stage: test
      script:
        - fastlane test
      tags:
        - saas-macos-medium-m1

fastlaneでコード署名を構成する

iOSのコード署名をセットアップするには、fastlaneを使用して署名付き証明書をGitLabにアップロードします:

  1. fastlaneを初期化します:

    fastlane init
  2. 設定でMatchfileを生成します:

    fastlane match init
  3. Appleデベロッパーポータルで証明書とプロファイルを生成し、それらのファイルをGitLabにアップロードします:

    PRIVATE_TOKEN=YOUR-TOKEN bundle exec fastlane match development
  4. オプション。すでにプロジェクトの署名証明書とプロビジョニングプロファイルを作成している場合は、fastlane match importを使用して既存のファイルをGitLabに読み込むます:

    PRIVATE_TOKEN=YOUR-TOKEN bundle exec fastlane match import

ファイルのパスを入力するように求められます。詳細を入力すると、ファイルがアップロードされ、プロジェクトのCI/CD設定に表示されます。インポート中にgit_urlを求められた場合は、空白のままにしてEnterキーを押しても安全です。

以下は、この構成のサンプルfastlane/Fastfileファイルと.gitlab-ci.ymlファイルです:

  • fastlane/Fastfile:

    default_platform(:ios)
    
    platform :ios do
      desc "Build and sign the application for development"
      lane :build do
        setup_ci
    
        match(type: 'development', readonly: is_ci)
    
        build_app(
          project: "ios demo.xcodeproj",
          scheme: "ios demo",
          configuration: "Debug",
          export_method: "development"
        )
      end
    end
  • .gitlab-ci.yml:

    build_ios:
      image: macos-12-xcode-14
      stage: build
      script:
        - fastlane build
      tags:
        - saas-macos-medium-m1

Apple Storeのインテグレーションとfastlaneでアプリ配布をセットアップする

署名付きのビルドは、モバイルDevOps配布インテグレーションを使用してApple App Storeにアップロードできます。

前提要件:

  • Appleデベロッパープログラムに登録されたApple IDが必要です。
  • Apple App Store Connectポータルで、プロジェクトの新しいプライベートキーを生成する必要があります。

Apple Storeのインテグレーションとfastlaneを使用してiOSディストリビューションを作成するには:

  1. App Store Connect APIのAPIキーを生成します。Apple App Store Connectポータルで、プロジェクトの新しいプライベートキーを生成します。
  2. Apple App Store Connectのインテグレーションを有効にします:
    1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
    2. 設定 > インテグレーションを選択します。
    3. Apple App Store Connectを選択します。
    4. インテグレーションを有効にするで、有効チェックボックスをオンにします。
    5. Apple App Store Connectの構成情報を入力してください:
      • Issuer ID: Apple App Store Connect発行者ID。
      • Key ID: 生成されたプライベートキーのキーID。
      • 秘密キー: 生成されたプライベートキー。このキーは一度しかダウンロードできません。
      • 保護ブランチと保護タグのみ: 保護ブランチとタグ付けでのみ変数を設定できるようにします。
    6. 変更を保存を選択します。
  3. リリースステップをパイプラインおよびfastlane設定に追加します。

以下はサンプルのfastlane/Fastfileです:

default_platform(:ios)

platform :ios do
  desc "Build and sign the application for distribution, upload to TestFlight"
  lane :beta do
    setup_ci

    match(type: 'appstore', readonly: is_ci)

    app_store_connect_api_key

    increment_build_number(
      build_number: latest_testflight_build_number(initial_build_number: 1) + 1,
      xcodeproj: "ios demo.xcodeproj"
    )

    build_app(
      project: "ios demo.xcodeproj",
      scheme: "ios demo",
      configuration: "Release",
      export_method: "app-store"
    )

    upload_to_testflight
  end
end

以下はサンプルの.gitlab-ci.ymlです:

beta_ios:
  image: macos-12-xcode-14
  stage: beta
  script:
    - fastlane beta

おつかれさまでした。これで、アプリは自動ビルド、署名、配布用にセットアップされました。最初のパイプラインをトリガーするために、マージリクエストを作成してみてください。

サンプルプロジェクト

ビルド、署名、およびモバイルアプリをリリースするように構成されたパイプラインを備えた、サンプルモバイルDevOpsプロジェクトは、以下で利用できます:

  • Android
  • Flutter
  • iOS

モバイルDevOpsデモプロジェクトグループのすべてのプロジェクトを表示します。