LoginSignup
0
1

More than 3 years have passed since last update.

Unity 2019 アップデート時 Android ビルドスクリプトを修正した

Last updated at Posted at 2020-11-18

概要

Unity で Android ビルドをしていたスクリプトが Unity 2018 から Unity 2019 にアップデートしたときに動かなくなってしまったため修正しました。

Android ビルドは一度 Gradle プロジェクトを出力するビルドパイプラインにしています。

Unity 2018 のビルドスクリプト

Gradle プロジェクトを出力するコード部分の抜粋です。

        EditorUserBuildSettings.androidBuildSystem = AndroidBuildSystem.Gradle;
        // 実行
        var buildReport = BuildPipeline.BuildPlayer(
                              sceneList,                          //!< ビルド対象シーンリスト
                              Path.Combine(Directory.GetCurrentDirectory(), AndroidBuildDirName), //!< 出力先
                              BuildTarget.Android,                    //!< ビルド対象プラットフォーム
                              BuildOptions.AcceptExternalModificationsToPlayer |
                              BuildOptions.Development            //!< ビルドオプション
                          );

このコードを実行すると指定の出力先に Gradle プロジェクトができていました。

Unity 2019 のビルドスクリプト

同じスクリプトを Unity 2019 で実行したところ、BuildPipeline.BuildPlayer 実行時に InvalidOperationException: The build target does not support build appending. というエラーがでて実行できなかった。

以下のフォーラムを参考に、

  • BuildOptions.AcceptExternalModificationsToPlayer のオプション指定を削除
  • かわりに EditorUserBuildSettings.exportAsGoogleAndroidProject = true; の設定を追加

しました。

フォーラム: https://forum.unity.com/threads/oculus-build-invalidoperationexception-the-build-target-does-not-support-build-appending.994930/

        EditorUserBuildSettings.androidBuildSystem = AndroidBuildSystem.Gradle;
        EditorUserBuildSettings.exportAsGoogleAndroidProject = true;
        // 実行
        var buildReport = BuildPipeline.BuildPlayer(
                              sceneList,                          //!< ビルド対象シーンリスト
                              Path.Combine(Directory.GetCurrentDirectory(), AndroidBuildDirName), //!< 出力先
                              BuildTarget.Android,                    //!< ビルド対象プラットフォーム

                              BuildOptions.Development            //!< ビルドオプション
                          );

無事に実行でき、指定の出力先に Gradle プロジェクトができていました。

また、Unity 2018 のときと出力されるGradle プロジェクトのディレクトリ構成が変わっています。これはディレクトリ構成確認して gradle 実行位置を修正をすることで解決しました。生成されている local.properties に UnityEditor が同梱する SDK, NDK のパスが指定されるようになって CI のメンテナンスが楽になりそうな印象。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1