Unityの新しい広告制御方法であるLebelPlay(IronSource)。
そのLevelPlayの導入後にAndroidのビルドが通らなくなり、覚悟していたとは言え夏休みを半分浪費(消費ではなく浪費)することになってしまったのが辛かったので、同じ苦しみを味わう人が減るように出来るだけシンプルに書き残しておきます。
★追記★
下記の手順に 7.5 を追加しました!
ExternalDependency Managerを入れた直後に、一度Resolveをしておくことが超大事…!っぽい。
★追記ここまで★
関連リンクと結局何が問題なのか
公式のナレッジセンターのリンクはコチラ↓
一応ゼロからチャレンジしたい人の為にリンクを貼っておきます。
解決した今だからこそ思う問題点としては
- 似たような単語が多く、意味が散乱している
→ Advertaise with Mediation、Ads Mediation、LevelPlay、IronSource … - 日本語の情報が少ない
- 各種パッケージが保守されていない(少なくともそう思わせられる)
- エラーの原因と発生源が関連付けづらい
- 場当たり的な対処法が多い
などが挙げられるように思います。
まぁ過渡期と言えば過渡期なのかもしれませんが(この記事を書いている段階ではLevelPlayに移行した後でまだ1年経っていない?)、果たしていつしっかりと整備された環境に仕上げるのか。。
で、結局解決するにはどうすべきか
一番キーになったのはこのスレッドの投稿
ここに辿り着くまでに2日ほどかかりました;
書いてある手順を書くと、下記の通りです
1. プロジェクトから LevelPlay(IronSource)関連を一旦完全に除去 します
2. Unity、UnityHubを閉じます
3. 最新環境のJDK をインストールします(記事では19が最新、私の場合は21が最新でした)
4. 環境変数「JAVA_HOME」で「C:\Program Files\Java\jdk-19(私の場合は21)」を追加
5. Unityを起動
6. 最新の Google Android Dependency Manager をImportする
7. プロジェクトの ProjectSettings > Android > Publishの、Custom Main Gradle Templateと、Custom Gradle Properties Templateのチェックを入れる
(追記)7.5. Menu > Assets > External Dependency Manager > AndroidResolver > Resolveをする事!
8. 最新の LevelPlay Mediation package をImportする
9. gradleTemplate.propertiesに「android.useAndroidX=true」「android.enableJetifier=true」を追記する
となります。
以下で6、8、9をちょっとだけ補足します
6.の補足
最新の Google Android Dependency Manager はコチラに有ります(記事記載時は1.2.177
名前は変わっているようで、現在は「External Dependency Manager for Unity」という名前らしい
※もうその時点で紛らわしい
8.の補足
最新の LevelPlay Mediation package はこちら(記事記載時は7.4.0
コレを導入した後で、マニュアルにもある通りにMenu > Ads Mediation > IntegrationManager から、必要なパッケージのInstallやUpdateを行うのを忘れずに。
で、8.が済んだ辺りで一度 Menu > Assets > External Dependency Manager > AndroidResolver > Resolveをした方が良かったです。
※SettingsをDefault指定にした方が良いかも?(ここは要検証)
9.の補足
これは上の手順を辿ったところ 不要 でした。
Dependency ManagerでResolveを行うと、自動で行ってくれるっぽいかな。
追加対応
されに上記手順のみではうまくビルドが通らず、何が原因かと調べた所 NCMBのPluginsとのライブラリ競合が発生していた ようでした。
私のようなunity1week上がりの人間は、大体ランキング実装などでNCMBを導入しているかと思いますが、そこと相性が悪いようです。
NCMB/Plugins/Androidフォルダから、最小限に下記を削除しました
- androidx.collection.collection-1.0.0.jar
- androidx.core.core-1.2.0.aar
- com.google.android.gms.play-services-base-17.6.0.aar
- com.google.android.gms.play-services-basement-17.6.0.aar
- com.google.android.gms.play-services-tasks-17.2.1.aar
これでビルド成功です。あー、疲れた。。
終わりに
という事で、ビルドを通すための手順紹介でした。
そもそもビルドする前に、IronSourceにアカウント登録→アプリ登録→メールを送って承認してもらうステップなどもあり、そこもしんどいのですがそれについてはココでは範囲外という事で触れません。
普通にパッケージを入れるとDependencyManagerが古いせいかGradle関連のエラーが出まくるのが、この取っつきづらさの一番の問題なんじゃないかなぁ…とも思いつつ。
iOSのビルドは果たしてどうなるか、
わざわざ記事を残さなくとも良いくらいスムーズにいって欲しい所です。。