Unity Cloud BuildでCodeCommitを利用する

 # 設定方法

## 設定したいプロジェクトの選択

Unity Dashboardを開き
Overviewを選択して、設定したいプロジェクトを選択する。

## CloudBuildの設定

CloudBuildのタブから、Configを選択します。

`SETUP NEW TARGET`を選択して、設定画面を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/17e13340-3922-0223-9a44-d01bb3f4619d.png)

今回はAndroidのビルドを行いたいので、設定します。
### 初めの設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/53a13e64-8732-3bf1-3efe-a8c0aa4713cc.png)

- ラベル  
このビルドターゲットに名前/ラベルを付けます。例：英数字、ハイフン、スペースのみを使用する。
- Project Subfolder  
ルートフォルダに「Assets」と「ProjectSettings」が含まれていない場合にのみこれを設定します
- Auto Detect Version  
Cloud Buildは、プロジェクトが使用しているUnityのバージョンを自動的に検出しようとします。  
ProjectSettings / ProjectVersion.txtがプロジェクトに存在し、ソース管理にチェックインされていることを確認してください。  
OAuthなしでgitを使用するプロジェクトはサポートされていません。
- Unity Version  
Unityのバージョンを指定するか、常に最新のリリースを使用してください。
- Auto-build  
これをオンにすると、リポジトリが更新されたときにビルドが自動的に開始されます。
- Auto-Cancel  
自動キャンセルを使用すると、最新のリクエストに対してのみビルドを実行できます。新しいビルドがトリガーされたときに、以前に保留中のビルドを自動的にキャンセルする場合は、これをオンにします。

### 次の設定


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/bb497a4a-386f-6b11-de3a-e76add3695c7.png)

- Bundle ID  
必須：ゲームのバンドル識別子。
- Choose Credentials  
開発キーストアを使用するには、Androidキーストアを指定するか、[自動生成されたデバッグキーストア]を選択してください。

### オプション設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/0c64abfc-7d80-7cc2-b496-320f64bb36df.png)

- Development Builds  
開発者ダッシュボードは、デフォルトでリリースとしてビルドされます。
このボックスをチェックして、BuildOptions.DevelopmentフラグとBuildOptions.AllowDebuggingフラグを設定します。
- Strict Mode  
開発者ダッシュボードの成功ステータスは、デフォルトで許容されます。
このボックスをチェックして、BuildOptions.StrictModeフラグを設定します。
- Build App Bundles (.aab)  
Android App Bundleは、アプリのコンパイル済みコードとリソースをすべて含む新しいアップロード形式ですが、APKの生成とGooglePlayへの署名は延期されます。
Gradleビルドシステムも使用する必要があります。詳細については、Androidの公式ドキュメントを参照してください。
- Compression  
ビルドの開発者ダッシュボードの圧縮設定。
これにより、BuildOptions.CompressWithLz4またはBuildOptions.CompressWithLz4HCフラグが設定または設定解除されます
- バイナリーの分割  
Developer Dashboardは、デフォルトで単一のAndroidAPKをビルドします。
このボックスをチェックして、PlayerSettings.Android.useAPKExpansionFilesフラグを設定します。
詳細については、AndroidOBBサポートを参照してください。
- Scripting Define Symbols  
このターゲットに定義するシンボルの名前を入力します。
これらのシンボルは、組み込みのシンボルと同じように、＃ifディレクティブの条件として使用できます。
（つまり、＃IFMYDEFINEまたは#IFAMAZON）詳細については、プラットフォームのカスタム定義を参照してください。
- Pre-Export Method Name  
Unityビルドプロセスを開始する前に呼び出すパブリック静的メソッドの完全修飾名。
例：ClassName.NeatMethodまたはNameSpace.ClassName.NeatMethod。末尾に括弧はありません。また、エクスポート後のメソッドと同じ名前にすることはできません。
- Post-Export Method Name  
Unityビルドプロセスの終了後（ただしXcodeの前）に呼び出すパブリック静的メソッドの完全修飾名。
例：ClassName.CoolMethodまたはNameSpace.ClassName.CoolMethod。
末尾に括弧はありません。また、エクスポート前のメソッドと同じ名前にすることはできません。このメソッドは、エクスポートされたUnityプレーヤー（またはiOSの場合はXcodeプロジェクト）へのパスを受け取る文字列パラメーターを受け入れる必要があります。
- Pre-Build Script Path  
Unityビルドプロセスを開始する前に呼び出すシェルスクリプトのパス（プロジェクトのルートに対する）。例：scripts /pre_build_task.sh。
- Post-Build Script Path  
ビルドプロセス全体（Xcodeを含む）の完了後に呼び出すシェルスクリプトのパス（プロジェクトのルートに対する）。例：scripts /post_build_task.sh。
- シーンリスト  
デフォルトでは、開発者ダッシュボードは、Unityプロジェクトの[ビルド設定]メニューで追加したシーンをビルドします。
プロジェクトにあるものとは異なるシーンのリストを作成する場合は、ここに追加します（Assetsディレクトリからの相対パスとして）。

### 環境変数の設定
現在設定する物はないので、次に行きます。

### アセットバンドルの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/8cefc686-cec6-9954-da42-8def53bfd146.png)

- Build Asset Bundles  
ビルドプロセスの一部として、このビルドターゲットのプラットフォーム用に構成されたすべてのアセットバンドルをビルドするには、このボックスをオンにします。
ビルドが成功すると、ビルドされたアセットバンドルをダウンロードするオプションがドロップダウンメニューに表示されます。 Unityマニュアルでアセットバンドルの詳細をご覧ください
- Bundles Base Path  
デフォルトでは、バンドルはプロジェクトルートのAssetBundlesフォルダーにビルドおよびコピーされます。アセットバンドルをビルドして別の場所にチェックインしている場合は、ここでフォルダー名を指定します。
- Build Options  
ビルドオプションは、AssetBundleのコンパイル方法を変更します。  
■ DisableWriteTypeTree（書き込みタイプツリーを無効にする）  
■ IgnoreTypeTreeChanges（タイプツリーの変更を無視する）  
■ AppendHashToAssetBundleName（アセットバンドル名にハッシュを追加）  
■ StrictMode（厳格モード）  
- Compression  
AssetBundleの圧縮形式。 LZMAがデフォルト値です。
- Copy to Streaming Assets  
アセットバンドルをストリーミングアセットフォルダにコピーして、エクスポートされたプレーヤーに含めます。ビルドマニフェストには、追加のプロパティが入力されます。  
AssetBundles.localBundles：ストリーミングアセットにコピーされたバンドルのリスト。  
ローカルバンドルがコピーされるStreamingAssetsフォルダー内のassetBundles.localBundlesRelativePath相対パス。

### アドレス可能なオプション
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/c3f22a62-a59e-141a-0940-d941dd4d458d.png)

- Build Addressables  
ビルドプロセスの一部として、このビルドターゲットのプラットフォーム用に構成されたアドレス可能オブジェクトをビルドするには、このボックスをオンにします。  
これには、プロジェクトにAddressablesパッケージをインストールして構成する必要があります。 AddressablesパッケージマニュアルでAddressablesの詳細をご覧ください
- Fail Build on Addressables Error  
このオプションが有効になっていて、アドレス可能オブジェクトのビルド中にエラーが発生した場合、プレーヤーはビルドされず、ビルドは失敗としてマークされます。  
このオプションを無効にすると、エラーがログに記録されますが、プレーヤーはビルドされたままになります。ビルドの最終結果は、プレーヤービルドによって異なります。

### テストオプション
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/18af6ffd-5a22-7ab6-2893-4bfeccc30165.png)

- Enabled  
trueの場合、ビルドが発生したときに単体テストが実行されます。
- Failed Unit Test Fails Build  
trueの場合、単体テストスイートに合格しなかった場合、それ以外の場合は成功したビルドは「失敗」としてマークされます。

# Source Controlの設定

下記の画面が表示されるので、`MANUAL`を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/e2f70d8a-302c-bf4d-0f91-c722f638a1b8.png)

CodeCommitへのURLを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/4d8aa049-9ca7-cc85-7335-80c145e44353.png)

表示されたキーをAWSのCodeComitにアクセスしたいユーザーに登録します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/b50f7c42-35e7-6169-5e3c-5696688975f9.png)

IAMを開き、登録したいユーザーのページに移動します。
SSHのパブリックキーのアップロードを選択して、先ほどのキーをアップロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/7299c12e-bfa2-3029-aa75-5e32f270f23e.png)

アップロードが完了したら、Repo URLの右側の`edit`ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/b50f7c42-35e7-6169-5e3c-5696688975f9.png)

その後、表示された画面で、URLを下記の内容に変更します。

ssh://[IAMで登録したSSHキー名]@git-codecommit.XXXXXXXXXXXXXX