Android 12 端末に Unity で Android ビルドしたアプリがインストールできない問題に対する対処

問題提起

Android 11 までは Google Play 経由や adb install 経由でインストールが無事に出来ていたのが,
Android 12 になってから出来なくなった.

その際に出てくるエラー内容は以下のような感じであれば該当しています.

INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl284569880.tmp/base.apk (at Binary XML file line #61): 
com.unity3d.player.UnityPlayerActivity: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present

発生環境

  • Unity 2020.3.20f1

対応方法

エラー内容に対応方法が書かれているので,その通りに行えばできました.

Project Settings > Player > Android > Build > Custom Main Manifest にまだチェックが入ってない場合はチェックを入れます.
この時に,Assets\Plugins\Android\AndroidManifest.xml が生成されますので,
AndroidManifest.xml に以下の該当箇所に変更を行います.

変更前

        <activity android:name="com.unity3d.player.UnityPlayerActivity"
                  android:theme="@style/UnityThemeSelector">

変更後

        <activity android:name="com.unity3d.player.UnityPlayerActivity"
                  android:theme="@style/UnityThemeSelector"
                  android:exported="true">

エラー内容に以下が出たと思いますが,まんまその通りの対応です.
exported に関して明示的に記述しろってことですね.

Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present

初めて AndroidManifest.xml を作成する場合は以下をコピペするだけでよいと思います.

<?xml version="1.0" encoding="utf-8"?>
<manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.unity3d.player"
>
    <application>
        <activity android:name="com.unity3d.player.UnityPlayerActivity"
                  android:theme="@style/UnityThemeSelector"
                  android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
    </application>
</manifest>

参考資料

AR Foundation (ARCore) 側にて参考資料があります.

developers.google.com