SNCreate
Tech
Unity

Unity Cloud BuildのGradleをバージョンアップしてビルドする!

作成日:2024年01月13日
最終更新日:2024年07月21日

業務で開発しているゲームの広告SDKアップデートに伴い、Gradleをv6.7.1以降にアップグレードする必要がでてきました。 ローカル環境でビルドする分には大した作業ではないですが、Unity Cloud Buildでビルドする方法についてはまとまった情報がなかったため、備忘録もかねてこちらでまとめました。
手順としては
[ 1 ] pre-build scriptを作成する
[ 2 ] Pre-Export methodを作成する
[ 3 ] Unity Build Automationの Configurationを編集する
という流れになります。順に解説していきます。

1. pre-build script を作成する

Unity プロジェクトのルート直下に .ci というディレクトリを作成し、その中に pre-build-script.sh (ディレクトリ、ファイル名は自身が分かれば何でも良いです)を作成します。 ディレクトリ構造は下記のようになります。

Terminal window
1
project_root
2
.ci
3
pre-build-script.sh
4
Assets
5
Packages
6
...

pre-build-script.shにはUnityクラウド環境に指定バージョンのGradleをインストールするためのスクリプトを記述します。(私の場合は6.7.1を指定しています。)

pre-build-script.sh
1
#!/bin/bash
2
set -euxo pipefail
3
cd "$USERPROFILE"
4
curl -LO https://services.gradle.org/distributions/gradle-6.7.1-bin.zip
5
6
unameOut="$(uname -s)"
7
case "${unameOut}" in
8
Darwin*) unzip "gradle-6.7.1-bin";;
9
CYGWIN*) 7z x "gradle-6.7.1-bin.zip";;
10
esac
11
12
ls -lh gradle-6.7.1

2. Pre-Export method を作成する

UnityプロジェクトのEditorディレクトリ内にPreProcessBuild.csというクラスを作成します。手順1でインストールしたGradleのパスをビルド前に反映するメソッドを記述します。(Gradleバージョンは手順1で指定したものと同一にします)

PreProcessBuild.cs
1
using System;
2
using System.IO;
3
using UnityEditor;
4
using UnityEngine;
5
6
namespace Project.Editor
7
{
8
public class PreProcessBuild
9
{
10
public static void ChangeGradle()
11
{
12
EditorPrefs.SetBool("GradleUseEmbedded", false);
13
var workspacePath = Environment.GetEnvironmentVariable("USERPROFILE");
14
var gradlePath = Path.Combine(workspacePath, "gradle-6.7.1");
5 collapsed lines
15
EditorPrefs.SetString("GradlePath", gradlePath);
16
Debug.Log("PreProcessBuild - changed path: "+EditorPrefs.GetString("GradlePath"));
17
}
18
}
19
}

3. Unity Build Automation の Configurationを編集する

Unity Cloudの DevOps > Build Automation > Configurations から作成したTarget setupの編集ページを開き、Advanced settingsScript hooks項目を編集します。 Pre-build script項目には手順1で作成したスクリプトのパスを、Pre-Export method項目は手順2で作成したクラスの名前空間を含めたメソッド名を入力します。 default
設定を保存して完了です。
以上の設定を行い、Gradleがv6.7.1にアップグレードされた状態でクラウドビルドが出来ました。


参考リンク:

How Do I Change the Gradle Version in Unity Build Automation?
Unity Cloud Buildでビルド後に独自のスクリプトを差し込む、成果物(ipa/apkなど)をAppCenterにアップロードする

記事のタイトル:Unity Cloud BuildのGradleをバージョンアップしてビルドする!
記事の著者:D4ken
公開時間:2024年01月13日