Forum Discussion
toxyne
4 years agoExplorer
Quest releasing problem (android manifest)
Hello guys. I need advice, please, about editing the android manifest to upload to Oculus Store. Please see the screenshot. Can't get how and where to solve it. App made in UE 4.23.1. Thanks.
25 Replies
Replies have been turned off for this discussion
- VintageGreenAdventurer
The Documentation here is horrible for unreal devs I only managed to figure out how to fix one
under advanced APK androidset an extra tag for application
android:allowBackup="False"- toxyneExplorer
Thanks for the reply. Some errors are gone but these are still available.
ERROR: Validation identified the following errors:
GLES version not specified (android:glEsVersion in AndroidManifest.xml). GLES version of 2.0 or greater should be used.
NOTE:
Your manifest includes the following potentially dangerous permissions:
- android.permission.READ_EXTERNAL_STORAGE
- android.permission.ACCESS_MEDIA_LOCATION
Please remove these permissions if they are not needed by your application. If they are needed, you must include justification in the “Notes for the Reviewer” field when submitting your application for review. Failure to provide justification will result in the rejection of your application.
- qpu3ukHonored Guest
Have the same problem!
I spent last 4 days and nights with this issues 😞
I will very appritiated if you have some solutions- StarkiumProtege
in android, if something is not marked specifically true or false it will still have a default value. Try manually telling the advanced section that those params are false?
- Bigbankhank99Protege
Did you ever find a solution to this? I’m still stuck. I’ve been at this for almost a week now. I’m using blueprints
- lee17Protege
hello, you need 3 things:
1. have a `Build\Android\ManifestRequirementsOverride.txt` like the following (you need to adjust the value for your sdk version and glES versions):
<uses-sdk android:minSdkVersion="25" android:targetSdkVersion="25" /> <uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1" /> <uses-feature android:glEsVersion="0x00030002" android:required="true" /> <supports-gl-texture android:name="GL_KHR_texture_compression_astc_ldr" /> <uses-feature android:name="android.hardware.usb.host" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.oculus.permission.HAND_TRACKING" /> <uses-feature android:name="oculus.software.handtracking" android:required="false" />2. have a `Source\[your project]\AndroidSanitizePermissions_UPL.xml` with the following 'removePermission' tags (adjust for your own needs):
<?xml version="1.0" encoding="utf-8"?> <root xmlns:android="http://schemas.android.com/apk/res/android"> <androidManifestUpdates> <removePermission android:name="android.permission.ACCESS_NETWORK_STATE" /> <removePermission android:name="android.permission.ACCESS_WIFI_STATE" /> <removePermission android:name="android.permission.READ_PHONE_STATE" /> <removePermission android:name="com.android.vending.CHECK_LICENSE" /> <removePermission android:name="android.permission.GET_ACCOUNTS" /> <removePermission android:name="android.permission.ACCESS_MEDIA_LOCATION" /> <removePermission android:name="android.permission.READ_EXTERNAL_STORAGE" /> </androidManifestUpdates> </root>3. add the following lines into `Source\[your project]\[your project].Build.cs` :
using System.IO; -- var manifest_file = Path.Combine(ModuleDirectory, "AndroidSanitizePermissions_UPL.xml"); AdditionalPropertiesForReceipt.Add(new ReceiptProperty("AndroidPlugin", manifest_file));Hope this helps.
- RoydenExplorer
Thanks, that is super useful!
Is it possible to add the removePermission tags via the Project Settings > Android > Advanced APK Packaging section? It would be great to control these settings from one single place. - StarkiumProtege
BTW, you'll need to update that suggestion.
warning CS0618: 'UnrealBuildTool.ModuleRules.ReceiptPropertyList.Add(UnrealBuildTool.ReceiptProperty)' is obsolete: 'Constructing a ReceiptProperty object is deprecated. Call ReceiptProperties.Add() with the path to the file to stage.'- StarkiumProtege
ok so according to the forums:
"
Looking at the API, it seems they've just made a new two argument add function, which internally constructs the ReceiptProperty. So all you should need to do is drop the ReceptProperty construction, giving the arguments you gave to the construction to the Add function instead.
i.e. AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(PluginPath, "AndroidManifest_UPL.xml")); "
Just gave this a try myself with your fix and it compiles, so the answer looks more like this:var manifest_file = Path.Combine(ModuleDirectory, "AndroidSanitizePermissions_UPL.xml"); AdditionalPropertiesForReceipt.Add("AndroidPlugin", manifest_file);
- Bigbankhank99Protege
I’ve tried this but it isn’t working. My project is using Blueprints not c++ does that matter? Also do I put that code in the build.cs at the very end? Like after the two } symbols? Thanks
- VintageGreenAdventurer
this is all you should have to do gets rid of two of the three warnings online works with all warnings but this will ensure security and passing oculus standards- Bigbankhank99Protege
If I just do this in unreal will it get rid of the permissions for reading and writing to external storage? Also my build also rejected saying that it had permissions to access media but I can’t find that one anywhere in the manifests? Thanks for this though I will try it later attached is the
rejection I got
- Bigbankhank99Protege
I’ve tried to put just these 2 lines in but when I go to the ODH and upload my app it just stays stuck uploading forever. It never finishes or says anything…the very first time I uploaded my APK it gave me this message in attachment
- Bigbankhank99Protege
I’ve tried this and it didn’t work. Do I need to put something somewhere else as well? Like the override txt file or anything? I’ve been stuck for days any help would be appreciated. Thanks
- Anonymous
I am trying to only remove the ACCESS_MEDIA_LOCATION permission. I tried the removePermission element, but I got the following warning when I packaged the project and the upload still says the permission is there.
Packaging (Android (ASTC)): Missing attribute 'name' in 'removePermission p0:name="android.permission.ACCESS_MEDIA_LOCATION"' (skipping instruction)I found another way using the tools:node element, described below, but when I attempted to upload the project, the WRITE_EXTERNAL_STORAGE permission was gone, but the ACCESS_MEDIA_LOCATION was still there.
Project > Build > Android > ManifestRequirementsOverride.txt
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" tools:node="remove"/>
Project Settings > Extra Tags for Manifest Nodexmlns:tools="http://schemas.android.com/tools"StackOverflow | How to Remove Specific Permission When Build Android App with Gradle
- SynthCatHonored Guest
Our app suffers the same fate. The ACCESS_MEDIA_LOCATION is nowhere to be found within both, the UE and our codebases. Even a fulltext search couldn't find any in the build files. Its not present in the Manifests and I ran out of ideas where it could possibly come from yesterday.
Any attempt to remove the permission with conventional weapons has proven to be unsuccessfull. Sadly both of the methods described in this post did not work. The rest of the permissions can be easly switched on and off at will.
I give up. I'll describe the struggle to the reviewer and hope for the best during the review process. - SynthCatHonored Guest
Ok guys, I gave it a one last go before the submission and its possible that the ovr-platform-util.exe contains a bug. If I analyze my apk using the android sdk tools there is no sign of the dreaded ACCESS_MEDIA_LOCATION permission.
We might have to file a bug report for this behavior.
- lee17Protege
I have only one warning for the dated OpenSSL lib. Did you "uncheck" RECORD_AUDIO in the project settings? Check VintageGreen 's screenshot for the androd tab settings.
- SynthCatHonored Guest
No, we need the RECORD_AUDIO permission for voice chat. But ACCESS_MEDIA_LOCATION is the problem. We really don't need it as it "Alows an application to access any geographic locations persisted in the user's shared collection".
- Anonymous
I ignored the permission error and left a note in the apps submission and they approved the build. The permission still appears on the app in the oculus dashboard along with a bunch of other permissions.
android.permission.INTERNET android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE android.permission.READ_MEDIA_AUDIO android.permission.READ_MEDIA_VIDEO android.permission.READ_MEDIA_IMAGES android.permission.ACCESS_MEDIA_LOCATION android.permission.ACCESS_NETWORK_STATE android.permission.WAKE_LOCK com.android.vending.CHECK_LICENSE android.permission.ACCESS_WIFI_STATE com.google.android.c2dm.permission.RECEIVE- octaspaceHonored Guest
How can i ignore this error when uploading? These errors are stopping me to upload the build, even just to test it internally. Any clues? Thanks
- ArclyteHonored Guest
Hi Anonymous ! Could you please tell what type of note did you leave with the submission? That would be very helpful, thank you in advance!
- Bigbankhank99Protege
What did you say in your note for them to approve to permissions? I’m trying this now
- SynthCatHonored Guest
We ended up doing the same thing.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 10 months ago
- 3 years ago
- 2 months ago