方法
ManifestRequirementsOverride.txt
という名前のテキストファイルを [ProjectDirectory]/Build/Android
直下に配置すると、AndroidManifest.xml
の Requirements 以降がテキストファイルの内容で置換され、デフォルトで定義されている Permission を上書きできる。
これにより Google Play Console でのアプリ提出時に、課金要素が無いのに Billing 関連のエラーでひっかかる問題を回避できたりする。
Android のパッケージングを行うと、そのパッケージに適用された AndroidManifest.xml
が[ProjectDirectory]/Intermediate/Android
内で見つかる。
実際に上書きできているかどうかは、ここを確認すればよい。
例えば UE 4.27 の AndroidManifest.xml
の Requirements 以降は、デフォルトで以下のようになっている。
<!-- Requirements -->
<uses-feature android:glEsVersion="0x00030001" android:required="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.android.vending.BILLING" />
<!-- Supported texture compression formats (cooked) -->
<supports-gl-texture android:name="GL_KHR_texture_compression_astc_ldr" />
ここで WAKE_LOCK 以外の Permission が不要な場合は、ManifestRequirementsOverride.txt
を以下のようにすればよい。
<uses-feature android:glEsVersion="0x00030001" android:required="true" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Supported texture compression formats (cooked) -->
<supports-gl-texture android:name="GL_KHR_texture_compression_astc_ldr" />
おまけ
超裏技的だが、同じ方法で Application Definition を上書きすることもできる。
参考