how to build 64 bit app lab oculus store quest

How to build 64-bit Oculus Quest applications for App Lab

After I have written my post on how to handle unwanted permissions in Unity, many Oculus Quest developers asked me to make another tutorial to solve another common problem: Facebook showing a warning for 32-bit builds submitted to App Lab.

This happens because if you build your Unity application leaving the default settings, the Android build may be a 32-bit one, but actually all the modern stores now require 64-bit builds. For instance, when some months ago I published an application for a customer on Google Play, it got rejected because Google Play doesn’t even allow uploading 32-bit apps anymore. Facebook still allows 32-bit apps on the Oculus Quest store, but it warns you that this is going to change soon, so you had better learn how to work with 64-bit applications. And guess what? Your Ghost is here to tell you how!

oculus quest 32 bit apps
The warning that you see in the dashboard of your app if you submit 32 bit builds

How to make 64-bit builds for App Lab – Video

Here you are my video tutorial with an in-depth explanation of the problem and the solution. I have shot everything inside the project of my famous The Unity Cube app… don’t forget to download it on App Lab and give it 5 stars!

Watching it, you can learn how to build in 64-bit for the Quest like a boss!

How to make 64-bit builds for App Lab – Textual Instructions

I’ll give you two very easy methods to get rid of the 32-bit nasty warning.

Method 1 – The Unity Way

If you have not imported the Oculus plugin, or you are a true Unity purist and want to do this operation in the classical way, this is how you do it:

  1. Go to Edit -> Project Settings…
  2. Select the Player Tab on the left panel of the windows that opens
  3. Make sure that you are changing the settings for the Android build (select the Android Tab on the right panel)
  4. Scroll until you reach “Other Settings” and expand the section
  5. In the “Configuration” section, change Scripting Backend to “IL2CPP” and as Target Architectures unselect ARM v7 and select ARM64
oculus quest unity 64bit
The procedure to activate 64bit builds. It has been recorded with Unity 2019 LTS. It may slightly vary depending on your version of Unity

Method 2 – The Oculus Way

In case you have installed the Oculus Integration from the Unity Asset Store, you have a set of facilities to make this even easier:

  1. Go to Oculus -> Tools -> OVR Performance Lint Tool
  2. In the popup that opens, if there is a line that says “Optimize Scripting Backend. For CPU performance, please use IL2CPP”, click on the Fix button that there is next to it
  3. if there is a line that says “Set Target Architecture to ARM64. 32-bit Quest apps are no longer being accepted on the Oculus Store”, click on the Fix button that there is next to it.
quest 64bit unity
This procedure is even easier: 2 clicks and you’re done!

IL2CPP

In both methods, you have to convert your scripting backend to IL2CPP from Mono. Speaking roughly, this means that the code that you write in C# gets converted to CPP before performing the final build, and this lets Unity create more optimized builds. IL2CPP is the new standard for building Unity apps.

Most of the time, you can switch between one backend to the other safely, and nothing changes for you. But in my career there have been two cases when IL2CPP has created some trouble for me:

  • An old version of the Vuforia plugin didn’t work properly with IL2CPP: I had to update Unity and the Vuforia plugin to a newer version to make the app build. Some libraries may work with Mono and not IL2CPP or vice versa. They are infrequent cases, but they may happen;
  • In some projects where there are intermediate solutions to build (e.g. UWP apps), Mono is sometimes easier to debug. At least, in a HoloLens 1 project that I had to manage some years ago, IL2CPP was a mess to debug in Visual Studio, while Mono was just the same plain C# that I had written inside Unity. I know things are better now, but since I don’t have a HoloLens with me, I can’t tell you for sure.

If you want to read more about IL2CPP you can refer to the official Unity manual: https://docs.unity3d.com/Manual/IL2CPP.html


And that’s it! I hope this tutorial has been useful for you, and if it is the case, share it on your social media channels to help other VR developers!

(Header image using material from Facebook and from Unity Technologies)


Disclaimer: this blog contains advertisement and affiliate links to sustain itself. If you click on an affiliate link, I'll be very happy because I'll earn a small commission on your purchase. You can find my boring full disclosure here.

Releated

vive focus vision hands on review

Vive Focus Vision and Viverse hands-on: two solutions for businesses

The most interesting hands-on demo I had at MatchXR in Helsinki was with the HTC Vive team, who let me try two of their most important solutions: the new Vive Focus Vision headset and the Viverse social VR space. I think these two products may be relevant for some enterprise use cases. Let me explain […]

valve deckard roy controllers

The XR Week Peek (2024.12.02): Valve Roy Controllers 3D models’ leak, Black Friday VR deals, and more!

Happy Thanksgiving weekend to all my American friends! We don’t have Thanksgiving in Italy, but I know it’s a very important celebration in the US, Canada, and a few other countries, so I hope all of you who celebrated it had a great time with your family.  To all the others who did not participate in […]