記事

Unity Android Permission が削除されない問題の解決方法

Unity Android Permission が削除されない問題の解決方法
Visitors
  • Unity Android Permission が削除されない問題が発生しました。
  • 使用していない READ_EXTERNAL_STORAGE 外部ストレージ権限が、ビルドに含まれ続けていました。

    Desktop View


原因分析

  • まず AndroidManifest ファイル内には該当権限を使用している場所はありませんでした。
  • 全体検索で使用している場所を探してみましたが…

    Desktop View

    Desktop View

  • Unity.Notifications.Tests の internal class である PostprocessorTests というUnityパッケージキャッシュファイルが存在し、
  • そこで該当権限を使用していました… さらに深く調べてみると、これが Mobile Notification パッケージ内に入っているクラスでした。

    Desktop View


解決方法

  1. AndroidManifest ファイルに削除したい権限があるか確認します。私の場合は READ_EXTERNAL_STORAGE でした。
  2. コンパイラ(RiderまたはVisual Studio)の全体検索モードで削除したい権限を検索し、使用している場所があるか確認します。
  • 権限の例
    1
    2
    3
    4
    5
    
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" android:minSdkVersion="33" />
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" android:minSdkVersion="33" />
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" android:minSdkVersion="33" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    
  1. もし削除したい権限があれば、思い切って削除しましょう。
  2. しかし、Unityパッケージやプラグインなどに含まれている場合があるため、確実に処理する必要があります。
  • remove を明示することで解決できました。
    1
    
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />
    
  • 結果 Desktop View
この記事は著者の CC BY 4.0 ライセンスの下で提供されています。