MAUIでアプリを作成した際に自動的にpermission.AD_IDがAndroidManifest.xmlに書き込まれる

渡邉 陽 20 評価のポイント
2024-04-23T08:00:47.1066667+00:00

Visual Studio MAUIにてAndoidアプリを作成し、GooglePlayConsoleの内部テストにアップロードしようとしたところ、「このリリースには com.google.android.gms.permission.AD_ID 権限が含まれていますが、Google Play Console の申告には、アプリで広告 ID を使用しないことが記載されています。」というエラーが発生しました。

自動的にcom.google.android.gms.permission.AD_IDがAndroidManifest.xmlに書き込まれるようです。自動的に書き込まれないようにする対処法はございませんでしょうか。

.NET
.NET
.NET ソフトウェア フレームワークに基づく Microsoft テクノロジ。
29 件の質問
Visual Studio
Visual Studio
Windows、Web、モバイル デバイス用のアプリケーションを構築するための統合開発ツールの Microsoft スイートのファミリ。
33 件の質問
0 件のコメント コメントはありません
{count} 件の投票

承認済みの回答
  1. Raina Zhao - MSFT 1,790 評価のポイント Microsoft ベンダー
    2024-04-24T07:23:22.66+00:00

    渡邉 陽さん、こんにちは。

    Microsoft Q&A フォーラムにご投稿くださいましてありがとうございます。

    エラーメッセージによって、同様な問題を見つけました。この問題はGoogle Play Consoleを通じて解決できるかもしれません。

    以下のスレッド(英語フォーラム)で共有された解決案を参照してください。

    You can't submit updates as some information about your app is incomplete (Google Play)

    どうぞよろしくお願いいたします。


    役に立った回答には「回答を受け入れる」と「いいね!」を押してください。さらに質問がある場合は、「コメント」を追加してください。注意:Q&Aからメール通知を受け取りたい場合には、ドキュメントの手順に基づき、メール通知を有効にしてください。

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. gekka 6,686 評価のポイント MVP
    2024-04-24T03:50:09.8133333+00:00

    VS2022 17.9.6でMAUIプロジェクトを新規に作成するとPlatforms\Android\AndroidManifest.xmlは以下の状態で作成されていて、

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
    	<application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application>
    	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    	<uses-permission android:name="android.permission.INTERNET" />
    </manifest>
    

    そのままビルドして発行でできる*.aabや*.apkに含まれるAndroidManifest.xmlを抽出すると以下のようになっていました。

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:compileSdkVersion="34" android:compileSdkVersionCodename="14" android:versionCode="1" android:versionName="1.0" package="com.companyname.csmaui" platformBuildVersionCode="34" platformBuildVersionName="14">
      <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34"/>
    
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.INTERNET"/>
      <permission android:name="com.companyname.csmaui.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" android:protectionLevel="0x00000002"/>
      <uses-permission android:name="com.companyname.csmaui.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"/>
    
      <application android:allowBackup="true" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:extractNativeLibs="true" android:icon="@mipmap/appicon" android:label="CSMaui" android:name="crc644bbbbcad245b2587.MainApplication" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true">
        <receiver android:enabled="true" android:exported="false" android:label="Essentials Energy Saver Broadcast Receiver" android:name="crc640a8d9a12ddbf2cf2.EnergySaverBroadcastReceiver"/>
        <activity android:configChanges="0x00001f80" android:exported="true" android:name="crc644bbbbcad245b2587.MainActivity" android:theme="@style/Maui.SplashTheme">
          <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
          </intent-filter>
        </activity>
        <provider android:authorities="com.companyname.csmaui.mono.MonoRuntimeProvider.__mono_init__" android:exported="false" android:initOrder="1999999999" android:name="mono.MonoRuntimeProvider"/>
        <provider android:authorities="com.companyname.csmaui.androidx-startup" android:exported="false" android:name="androidx.startup.InitializationProvider" tools:node="merge">
          <meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup"/>
          <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" android:value="androidx.startup"/>
          <meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer" android:value="androidx.startup"/>
        </provider>
        <uses-library android:name="androidx.window.extensions" android:required="false"/>
        <uses-library android:name="androidx.window.sidecar" android:required="false"/>
        <receiver android:directBootAware="false" android:enabled="true" android:exported="true" android:name="androidx.profileinstaller.ProfileInstallReceiver" android:permission="android.permission.DUMP">
          <intent-filter>
            <action android:name="androidx.profileinstaller.action.INSTALL_PROFILE"/>
          </intent-filter>
          <intent-filter>
            <action android:name="androidx.profileinstaller.action.SKIP_FILE"/>
          </intent-filter>
          <intent-filter>
            <action android:name="androidx.profileinstaller.action.SAVE_PROFILE"/>
          </intent-filter>
          <intent-filter>
            <action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION"/>
          </intent-filter>
        </receiver>
      </application>
    </manifest>
    

    <uses-permission android:name="com.google.android.gms.permission.AD_ID" />は含まれていないので、標準状態では入らないということです。

    ためしにVisualStudioでAndroidManifest.xmlを開くと表示されるRequired permissionsをすべてチェックしても入ってませんでした。 意図的にAndroidManifest.xmlにuses-permissionを追記してやると入りましたが。

    プロジェクトで手作業で追記していないのでしたら、追加したnugetなどのパッケージで要求されているのかも

    0 件のコメント コメントはありません

  2. 渡邉 陽 20 評価のポイント
    2024-04-24T15:37:38.71+00:00

    自身の環境(VS2022 17.8.6)でも、新規MAUIプロジェクトを作成しアーカイブしてみました。

    おっしゃるように.aab内のAndroidManifest.xmlにpermission.AD_IDが含まれていませんでした。

    0 件のコメント コメントはありません

  3. 渡邉 陽 20 評価のポイント
    2024-04-25T06:08:55.38+00:00

    Raina Zhaoさんの引用URLと同じく、Firebaseのnugetを使用していることにより、AD_IDが付与されていたようです。
    AndroidManifest.xmlにtools:node="remove"を付与することで本件の事象を解決できることを確認しました。ご助力有難うございました。

    以下が修正時のAndroidManifest.xmlです。AndroidManifestでtoolsを使用する際、manifestタブにxmlns:tools="http://schemas.android.com/tools"が無いとエラーが発生します。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:installLocation="auto" android:
    		:
    	<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
    		:
    
    
    0 件のコメント コメントはありません