# iOS ビルド用の Fastlane 設定のカスタマイズ

> Configure Fastlane settings for iOS builds to control build behavior.

**Build Automation** は、Xcode プロジェクトのビルドに [Fastlane](https://fastlane.tools/) を使用しています。このドキュメントでは、[Gymfile](https://docs.fastlane.tools/actions/gym/#gymfile) と呼ばれる Fastlane ファイル形式を使用して Fastlane の動作を変更する方法について説明します。すべての設定オプションは Fastlane に固有のものであるため、ツールセットの基本的な知識があることが推奨されます。

このセクションでは、現在複数のプロファイルでビルドするようにプロジェクトを構成する方法の基本的な例を使用します。以下の例は、アプリケーション識別子が `"com.unity3d.buildautomation.base"` で、アプリケーション識別子が `"com.unity3d.buildautomation.base.stickers"` のステッカー拡張子を持つアプリケーションをビルドすることを前提としています。

## 必要なファイルの追加##add-required-files

この設定では現在、リポジトリに 3 つの余分なファイルを追加する必要があります。

### ファイル #1: カスタム Fastfile/Gymfile へのパスと Fastfile 内のどの [レーン](https://docs.fastlane.tools/advanced/lanes/#lanes) を実行するかを制御する JSON オプションファイル。##file-1-a-json-options-file-that-controls-the-paths-to-your-custom-fastfilegymfile-and-which-laneshttpsdocsfastlanetoolsadvancedlaneslanes-in-the-fastfile-should-be-run

このファイルはリポジトリ内のどこにでも配置できますが、この例では `Assets/ucb_xcode_fastlane.json` に配置されています。以下のプロパティーをサポートします (すべてオプション。プロパティーを完全に削除しない場合は使用不可)。fastfile - カスタム Fastfile への、リポジトリのルートからの相対パス。gymfile - カスタム Jimfile への、リポジトリのルートからの相対パス。lanes - 前述の Fastfile 内のレーン。pre\_build - 実際の Xcode ビルドステップの前に実行するレーン。post\_build - 実際の Xcode ビルドステップの後に実行するレーン。

これらはすべて、プロジェクトのルートからの相対パスです。

例 `"Assets/ucb_xcode_fastlane.json"`:

```js
(JavaScript)

{
    "fastfile": "Assets/ucb/Fastfile",
    "gymfile": "Assets/ucb/Gymfile",
    "lanes": {
        "pre_build": "use_stickers_profile",
        "post_build": ""
    }
}
```

### ファイル #2: Xcode プロジェクトのプロビジョニングプロファイルのインストールとプロビジョニング設定の更新を行うカスタム Fastfile。##file-2-a-custom-fastfile-to-install-the-provisioning-profile-and-update-the-provisioning-settings-in-the-xcode-project

このファイルはリポジトリ内のどこにでも配置できますが、上記の `ucb_xcode_fastlane.json` で指定した "fastfile" のパスと一致する必要があります。

pre\_build レーン/post\_build レーンを構成した場合、オプションハッシュは、以下を含むレーンの実行時に渡されます。project\_dir - このプロジェクトのビルド元のリポジトリのルート。build\_target - このビルドのビルドターゲット識別子。output\_directory - Xcode プロジェクトのビルド先の最終出力ディレクトリ。

この例では、リポジトリの "Assets/ucb/Stickers.mobileprovision" にプロビジョニングプロファイルをインストールし、Xcode プロジェクトの "Unity-iPhone-Stickers" ターゲットを更新してそのプロファイルを使用しています。

例 `Assets/ucb/Fastfile`:

```rb
(Ruby)

lane :use_stickers_profile do |options|
    profile_path = File.join(options[:project_dir], 'Assets/ucb/Stickers.mobileprovision')
    FastlaneCore::ProvisioningProfile.install(profile_path)
    update_project_provisioning(
        xcodeproj: 'Unity-iPhone.xcodeproj',
        target_filter: 'Unity-iPhone-Stickers',
        profile: profile_path
    )
end
```

### ファイル #3: エクスポートオプションのカスタマイズの一環として、プロビジョニングプロファイルマッピングへのアプリケーション識別子を定義するためのカスタム Gymfile。##file-3-a-custom-gymfile-to-define-the-application-identifier-to-provisioning-profile-mapping-as-part-of-customizing-the-export-options

このファイルはリポジトリ内のどこにでも配置できますが、上記の ucb\_xcode\_fastlane.json の "gymfile" のパスと一致する必要があります。使用可能なオプションについては、[Fastlane ドキュメント](https://docs.fastlane.tools/actions/gym/) を参照してください。

この例では、アプリケーション識別子 "com.unity3d.buildautomation.base.stickers" を `1e33640e-9a55-4357-a632-ca6c48a53a96` の UUID (`Assets/ucb/Stickers.mobileprovision` 時のプロビジョニングプロファイルの UUID) にマップする必要があります。

例 `Assets/ucb/Gymfile`:

```rb
(Ruby)

export_options(
    provisioningProfiles: {
        "com.unity3d.buildautomation.base.stickers" => "1e33640e-9a55-4357-a632-ca6c48a53a96"
    }
)
```

## 詳細設定の更新##update-advanced-settings

あとは、ダッシュボードでビルドターゲットの詳細設定を更新するだけです。

1. [Unity Dashboard](https://cloud.unity.com/) に移動します。
2. **DevOps** > **Build Automation** > **Configurations** (設定) を選択します。
3. iOS ビルドターゲットに移動します。
4. **Edit** (編集) を選択します。
5. Edit Advanced Options (詳細オプションを編集) タブに移動します。
6. **Platform specific settings (iOS)** (ラットフォーム固有設定 (iOS)) オプションの、カスタム Fastlane 設定パスを設定します。これは、プロジェクトのルートからの相対パスです。この例では "Assets/ucb\_xcode\_fastlane.json" に設定されています。


**iOS ビルド用の Fastlane 設定のカスタマイズ:**
!["iOS ビルド用の Fastlane 設定のカスタマイズ"](/api/media?file=/build-automation/media/images/build-automation/fastlane-config.png "UBA - Gymfile の設定 - Fastlane 設定")
