アプリ利用者からアプリをバージョンアップしたら、カメラロールに保存できなくなったと、お問い合わせがあった。

確認してみたところ、
・Android9でカメラロール保存ができない
・Android10,11,12では保存OK

調査開始、調べること10時間

◆原因部分判明:
AdMob SDK7.0.0 の「googlemobileads-unity.aar」ファイル内のマニフェストファイルに記載されている下記部分により、マニフェストマージ時にパーミッション記述が削除されているため。

下記がマニフェストマージ時、パーミッション削除記述

<uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.READ_EXTERNAL_STORAGE"
    tools:node="remove" />

通常のマニフェストファイルによる影響はチェックしていたが、aarファイル内のマニフェストによる影響とは思わず原因特定まで結構な時間がかかった。

◆方法:(※自己責任で)
・「googlemobileads-unity.aar」を「googlemobileads-unity.zip」にファイル名変更
・zip編集可能なアプリでzip内の「AndroidManifest.xml」ファイルのパーミッション削除記述部分を削除
(パーミッションを削除しないようにする)
(NG例、Macでzip解凍しマニフェストファイル編集し、zip圧縮、ファイル名変更ではダメだった)
・zipファイルを保存
・ファイル名を元に戻す「googlemobileads-unity.zip」->「googlemobileads-unity.aar」
・ビルドし実記確認するとカメラロール保存可能になった。


◆まとめ
Android9以降、ストレージ権限(パーミッション)がちょこちょこ変わっているためややこしい。
端末の「設定」->「アプリ」で権限を確認したいアプリを選び「権限」を選択すると権限一覧が閲覧可能。
ここに権限が表示されない限り、権限が許可されていないはずのため、表示される様すべし。