はじめに
AndroidアプリにFirebase Analyticsを組み込んでGoogle Play Consoleにアップロードしたところ、広告は全く使っていないのに広告IDの申告を更新しなさいとエラーが出てしまいました。
本記事では、広告IDの使用申告を更新することなくこのエラーを回避する方法を解説します。
開発環境
- Windows11
- UE5.1.0
- Firebase - Features(有料です)
- 広告を使用していないモバイルプロジェクト
原因
この画像に答えが書いてありますが、AndroidManifestに広告を使用するパーミッションcom.google.android.gms.permission.AD_ID
が追加されているのが原因です。
追加した覚えは微塵もありませんが、この記事を見る限り、どうやらFirebaseのSDKはデフォルトで広告IDを収集するようになっているようです。
私が購入したプラグインも例外ではなく、Firebase AdMobは無効にし、Firebase Analyticsのみを使用しているのにこのエラーが出るということは、そういうことなのでしょう。
ついでにその他のパーミッションの確認方法はこちら
Google Play Consoleから確認
App Bundleエクスプローラー
からパーミッションを確認したいApp Bundleを選択します。
詳細
タブを下にスクロールすると、権限
という項目があるので、詳細を表示
をクリックします。
ローカルのAndroidManifest.xmlから確認(arm64の場合)
エクスプローラーを開き、プロジェクトの\Intermediate\Android\arm64\AndroidManifest.xml
を開くだけです。
解決方法
パーミッションをオーバーライドして、com.google.android.gms.permission.AD_IDを削除します。
プロジェクトの\Build\Android
にManifestRequirementsOverride.txt
を作成します。
ここにパーミッションを記述していくわけですが、パーミッションに関してはこのファイルに書いた内容に上書きされるため、必要なパーミッションを全て記述しないといけません。
必要なパーミッションは、先ほど記述した確認方法で各自確認して、全て写してください。
ファイルの中に次のコードを記述します。
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove" />
記述例
<uses-feature android:glEsVersion="0x00030002" android:required="true" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove" />
<!-- Supported texture compression formats (cooked) -->
<supports-gl-texture android:name="GL_KHR_texture_compression_astc_ldr" />
次に、UEのプロジェクト設定にtoolsを使用する設定を記述します。
先ほどのコードの、tools:node="remove"
のtools
属性を使うための設定です。
Project Settings
> Platforms
> Android
> Advanced APK Packaging
> Extra Tags for <manifest> node
に次のコードを追加します。
xmlns:tools="http://schemas.android.com/tools"
設定は以上です。
パッケージ化してAndroidManifestを確認すると、パーミッションが削除されているはずです。
参考記事