# Build Automation 障害のトラブルシューティング

> Solve common issues with Build Automation failures.

## ログにエラーがないか確認します。##check-the-logs-for-errors

Unity Build Automation (UBA) 障害をトラブルシューティングする最初のステップは、エラーログを確認することです。

UBA ログでは、可視性を高めるためにエラーメッセージが赤色でハイライトされ、警告が黄色でハイライトされます。また、UBA では警告とエラーメッセージをコンパクトログタブに収集して検索しやすくなっていますが、すべての障害がコンパクトログに記録されるわけではなく、ログ全体を確認するのに役立てます。複数のエラーログがあり、以前のビルドが成功した場合は、ログを比較して、成功した実行に存在する可能性のあるエラーをフィルターで除外できます。

## クリーンビルドの実行##run-a-clean-build

ライブラリまたはワークスペースフォルダーのいずれかをキャッシュする UBA ビルドは、問題が発生する可能性があります。ターゲットにキャッシュを強制的に無視させるには、ビルドのトリガー時に **クリーンビルド** オプションを使用します。

## バッチモードのローカルでの実行##run-locally-in-batch-mode

エディターでのプロジェクトのビルドは成功したものの、Unity Build Automation でのビルドに失敗する場合は、バッチモードを使用してビルドを生成したことが原因である可能性があります。エラーが再現するかどうかを調べるには、ローカルでバッチモードで実行してみます。

まず、`Library` フォルダーを削除するか、ソースコードを新しいフォルダーにチェックアウトする必要があります。これで、UBA がパッケージを再ダウンロードします。これで、すべてのビルドでソースコードをチェックアウトする UBA ビルドサーバーの動作をシミュレートします。

これが同じコマンドの Windows と macOS バージョンです。

> **Note:**
>
> **ノート**: これらのフラグのうちいくつかは必須ではありません。単体テストを実行しない場合は、`-testPlatform`、`-testResults`、`-runTests` などのフラグをスキップできます。

指定されたディレクトリは Unity エディターのデフォルトのインストールフォルダーです。ローカルマシンの正しいパスに従って調整します。

### Windows CMD コンソール##windows-cmd-console

```text
"C:\Program Files\Unity\Hub\Editor\{UNITY_VERSION}\Editor\unity.exe" -batchMode -skipMissingProjectID -skipMissingUPID -buildTarget {BUILD_TARGET} -logFile C:\{SOME_PATH}\log.txt -projectPath C:\{PROJECT_PATH} -executeMethod {CLASS_AND_STATIC_METHOD_NAME_OF_BUILD_SCRIPT} -quit
```

### macOS 端末##macos-terminal

```text
/Applications/Unity/Hub/Editor/{UNITY_VERSION}/Unity.app/Contents/MacOS/Unity -batchMode -skipMissingProjectID -skipMissingUPID -buildTarget {BUILD_TARGET} -logFile /Users/{SOME_PATH}/log.txt -projectPath /Users/{PROJECT_PATH} -executeMethod {CLASS_AND_STATIC_METHOD_NAME_OF_BUILD_SCRIPT} -quit
```

テストも実行する場合は、以下のタグを追加できます。

* `-runTests`
* `-testPlatform {PLATFORM} // playmode or editmode`
* `-testResults {FILE_PATH_AND_FILE_NAME}.xml`

### テンプレートビルドスクリプト##template-build-script

ビルドを実行する静的メソッドを含むビルドスクリプトをエディターフォルダー内に置きます。エディターフォルダーがない場合は、作成します。

以下に参照として、テンプレートビルドスクリプトを示します。

```text
using UnityEditor;
class MyEditorScript
{
  static void PerformBuild ()
  {
    BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
    buildPlayerOptions.scenes = new[] {"Assets/Scenes/MyScene.unity", ...};
    buildPlayerOptions.target = BuildTarget.iOS; // More details on BuildTarget doc
    buildPlayerOptions.options = BuildOptions.None;
    buildPlayerOptions.locationPathName = "iOSBuild";
    BuildPipeline.BuildPlayer(buildPlayerOptions);
  }
}
```

## よくある問題##common-issues

全般:

* [ビルドが即座に失敗](./builds-failing-immediately.md)
* [認識されないプロジェクトエラー](./unrecognized-project-error.md)
* [Git サブモジュール使用時のクローンハング](./git-clone-hangs.md)
* [ライトマップのベイキング](./lightmap-baking.md)

プラットフォーム固有の問題:

* [Android ビルド失敗](./android-build-failures.md)
* [新しいバージョンの Xcode への移行後のエラー](./error-migrating-xcode.md)
* [OSX 公証失敗](./osx-notarization-failure.md)
* [XCode エクスポート時の iOS Build Automation に関する問題](./xcode-export-issues.md)
* [iOS ビルドが Unity Build Automation からダウンロードまたはインストールできない](./ios-build-download-issue.md)
