ビルドプロセス中のカスタムスクリプトの実行
Follow this workflow to run custom scripts before and after the build process.
読み終わるまでの所要時間 3 分最終更新 1ヶ月前
Build Automation は、ユーザーが作成したビルド前とビルド後の両方のカスタムスクリプトをサポートします。カスタムスクリプトを使用するには、これらのスクリプトをソースリポジトリにチェックインし、ビルドの詳細設定でリポジトリのルートからのスクリプトへの相対パスを設定します。
エクスポート前メソッドとエクスポート後メソッド
エクスポート前メソッドとエクスポート後メソッドを使用して、Unity プロジェクトがクラウドにビルドされる前後にアクションをトリガーします。これらのメソッドは、Assets/Editorエクスポート前メソッド名
エクスポート前メソッドを使用するには、Unity プロジェクトに public の静的メソッドを作成します。このメソッドには、Unity エディターがプロジェクトをエクスポートする前と Unity エディターのスクリプトコンパイルフェーズ後に実行するコードが含まれています。Build Automation を有効にして、現在のビルドのビルドマニフェストをエクスポート前メソッドに渡すには、メソッドシグネチャにパラメーターとしてpublic static void PreExport()
BuildManifestObjectUnity Build Automation がメソッドを呼び出すと、public static void PreExport(UnityEngine.CloudBuild.BuildManifestObject manifest)
BuildManifestObjectBuildManifestObjectエクスポート後メソッド名
エクスポート後メソッドを使用するには、Unity プロジェクトに public 静的メソッドを作成します。このメソッドには、Unity エディターがプロジェクトをエクスポートした後に実行するコードが含まれています。Unity Build Automation がメソッドを呼び出すとき、文字列を渡します。public static void PostExport(string exportPath)
- iOS 以外のビルドターゲットの場合、文字列にはエクスポートされたプロジェクトへのパスが含まれます。
- iOS プロジェクトの場合、この文字列にはエクスポートされた Xcode プロジェクトへのパスが含まれます。パスを使用してエクスポートした Xcode プロジェクトを特定し、ビルドプロセスを完了するために Xcode を呼び出す前に追加の前処理を実行できます。
カスタムスクリプト #define ディレクティブ
Build Automation を使用して、カスタムスクリプト #define ディレクティブを作成できます。Unity Dashboard で、ビルドターゲットの Advanced settings (詳細設定) に移動します。 Scripting Define Symbols (スクリプティング定義シンボル) フィールドでは、独自のカスタムスクリプト #define ディレクティブを、使用可能なビルトインの選択肢に追加できます。ビルドターゲットごとに、定義するシンボルの名前を入力します。これらのシンボルは、ビルトインのシンボルと同様に、 #if ディレクティブの条件として使用できます。詳細は、条件付きコンパイル を参照してください。ノードバージョンの変更
NVM はビルドマシンにインストールされ、ビルドプロセス中に別のノードバージョンに切り替えることができます。以下のサンプルスクリプトは、Node 16.13.0 にインストールと切り替えを行います。#!/usr/bin/env bash## Source profile##install-nvm-modules-and-set-version. ~/.profile## Install NVM modules and set version##output-node-version-usednvm install 16.13.0nvm use 16.13.0## Output Node version used##source-profilenode -vexit 0
他の Ruby バージョンの使用
RVMgemDO#!/usr/bin/env bash## Source profilervm install ruby-3.3.0rvm ruby-3.3.0 do gem install fastlanervm ruby-3.3.0 do fastlane --helpexit 0
rvm install ruby-3.3.0 --with-openssl-dir=$(brew --prefix openssl@1.1)
環境変数の設定
Unity ビルドとビルド後スクリプトで環境変数を使用できるようにするには、環境変数を定義または更新し、この値をecho "{environment_variable_name}={value}" >> "$DEVOPS_ENV"
DEVOPS_ENVtestenvTESTENVDEVOPS_ENV への環境変数の書き込み例
ビルド前スクリプトで環境変数を設定します。その後、ビルド後スクリプトで環境変数をエコーします。echo "TEST_ENV=Sample environment variable" >> $DEVOPS_ENV
echo $TEST_ENV
ビルド後スクリプトでのビルドアーティファクトへのアクセス
ビルドアーティファクトにアクセスしてストアフロントに自動アップロードしたり、ビルド後スクリプトを使用してビルドプロセスの一部を自動化することができます。ビルド後スクリプトで環境変数を使用してパスを Windows 実行ファイルに渡す場合は、cygwin パスを使用する必要があります。プレイヤーへのパスを取得するサンプルスクリプト
#!/bin/bash#This is a sample that will simply output the path to the build artifactecho "START"PLAYER_PATH=$UNITY_PLAYER_PATH#If we are using a Windows Builder and using the path to pass it to a native Windows application, we need to properly convert the cygwin player path to windows formatif [[ "$BUILDER_OS" == "WINDOWS" ]]; thenPLAYER_PATH=$(cygpath -wa "$UNITY_PLAYER_PATH")fiecho "$PLAYER_PATH"
ログのマスク値
値をマスキングすると、文字列や変数がログに出力されなくなります。マスクされた各値は、値の内容に関係なく*****::mask-value::echo "::mask-value::{value}"
例: 値のマスキング
値"SuperS3cretPassword!"::mask-value::これがログに出力されると、出力はecho "::mask-value::SuperS3cretPassword!"
"*****"例: 変数のマスキング
変数DB_PASSWORD"SuperS3cretPassword!"::mask-value::これらのいずれかがログに出力されると、出力はDB_PASSWORD=SuperS3cretPassword!echo "::mask-value::$DB_PASSWORD"
"*****"例: 環境変数のマスキング
$DEVOPS_ENV$DEVOPS_ENVDB_PASSWORD=SuperS3cretPassword!echo "::mask-value::$DB_PASSWORD"echo "DB_PASSWORD=$DB_PASSWORD" >> $DEVOPS_ENV