Permission requiired you must approve this premission in app settings:storage

put the extra permissions in Build/Android ManifestRequirementsOverride.txt

This method worked for me. However it’s should be shipping build. Also Android File Server plugin turned Off.

Before packaging clear binaries,intermediate,DDC and build->Android ASTC/Multi Folder (Not Android folder)


.bat Method worked for me too I did not have to override.

What is .bat method? Would you show me a source about that method. I have also Storage permission problem?

Where is this file located?



You create this file. And tell the project to use it by modifying your build.cs, by adding within public:

        if (Target.Platform == UnrealTargetPlatform.Android)
            string manifestFile = System.IO.Path.Combine(ModuleDirectory, "AndroidSanitizePermissions_UPL.xml");
            AdditionalPropertiesForReceipt.Add("AndroidPlugin", manifestFile);

Hi @LocoLeppy LocoLeppy, did you find a solution to this problem? I’m also stuck with this problem, trying to distribute the App via PlayStore for internal testing

Thanks, I was able to get save game writing to work following this.
(development build, UE5.3, target + min SDK set to 32, sideloading on to a Quest 2).

A couple details for anyone following the post at Anton Rassadin — Using scoped storage in debug Unreal Engine builds on Android API 29+ :

  • replace com.epicgames.ue4.GameActivity.bUseExternalFilesDir with com.epicgames.unreal.GameActivity.bUseExternalFilesDir for UE5

  • you’ll need to wrap the XML given at the bottom of the blog post in the following:

<?xml version="1.0" encoding="utf-8"?>
<root xmlns:android="">

Then save to ProjectName/Source/ProjectName/AndroidSanitizePermissions_UPL.xml

1 Like

Thank you Origins!

Manage to create a file in Documents on a Quest 3.
SDK 33, Shipping and Multi.
Didn’t have to desactivate Android File Server nor deleting any folders.

1 Like

Thank you! I’ve updated the post to reflect changed GameActivity fully qualified class name in Unreal Engine 5.

I appreciate your solution in that it worked perfectly without having to downgrade the Android API level from 33 to 32.

Here is another discussion regarding this topic