As of August 2024, there is a Unity bug that creates a permission in the AndroidManifest.xml for Quest Android APKs, which is blocked by the Quest store and the Meta Quest Horizon Store: android.permission.READ_PHONE_STATE
As well as this stopping you from being able to upload your app, Unity also creates other permissions governing storage and media metadata that will cause your app to be rejected later – see below.
It adds these even if you are using a Custom Manifest, or one generated by the Meta SDK with “Create Store-Compatible AndroidManifest.xml”
So if you’re making a Stornaway VR app via our App Builder with Unity, and planning to publish/share via the Quest store, at the moment you need to add some lines to the AndroidManifest.xml file to stop Unity from doing this.
Search in Unity for AndroidManifest – it’s in the Assets/Plugins/Android folder – then double click the AndroidManifest file icon to open it in a text editor. Then add the following lines at the end.
Copy from the code block below and paste before the final </manifest> line so that it looks like the screenshot below:
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" tools:node="remove"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" tools:node="remove"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" tools:node="remove"/>
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" tools:node="remove"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGE" tools:node="remove"/>
</manifest>
Many Chat GPTs died to bring us this information.
If you’re here via search and making Quest apps, you can thank me by signing up for a free Stornaway.io account, checking out and sharing the amazingness of what we’ve made – a visual journey designer to make interactive experiences – including 360 video VR and Mixed Reality apps – much more accessible to a wider world of producers.
Ru Howe – ru@stornaway.io
Chief Design and Technology Officer, Stornaway
—
For search purposes: The error reported by Meta Quest Developer Hub says:
ERROR:
• The upload could not be completed because your application contains the following Android permissions that are not supported:
– android.permission.READ_PHONE_STATE
Please remove the following permissions and upload your application binary again.
It also contains the following complaint for permissions currently added by Unity despite using a custom manifest:
Your manifest includes the following permissions restricted by Oculus:
– 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.READ_MEDIA_IMAGE
These are not blocked up front in the same way as READ_PHONE_STATE above, but with a standard app you will need to remove these before submitting to the store in order for your app to be accepted.