Today I publish a very specific post to help Oculus developers in a particular situation I’ve been myself in: how to publish an update to an App Lab experience of yours when the “Production Channel” is missing in the Oculus Developer Hub interface and the web uploader has been deprecated.
My story with this problem
(Here I’m telling you my experience in handling this problem. Skip this paragraph if you want to directly go the solution)
Some days ago, we of New Technology Walkers have finished developing our latest update for our VR fitness game HitMotion: Reloaded, in which we have integrated bHaptics and LIV support, among other things.
We were super-excited about our work, and couldn’t wait to publish our update on App Lab. I so went to the Oculus Developer Dashboard webpage of our team and clicked the button to upload a new build for the current Production channel. The Production Channel is where you publish builds that should go live so that people can directly download them from the store. After I have happily clicked the button, as I have done for all the past updates, the website showed me this not-so-nice dialog:
Do you know those moments when you are happy that you are going to finish something in 5 minutes and then an unexpected event happens and you realize that is going to take much more than expected? Well, it was one of those moments. Damn.
But I didn’t give up. Of course, I didn’t want to use the command line to do this operation (I’m not one of those hackers from the movies, I’m just a lazy developer), so I downloaded the Oculus Developer Hub (ODH), which is like a super-tool that Oculus has created to help us developers in managing our Quest, debugging our experiences, and managing the publication of our builds. It’s a lot of time that I wanted to actually experiment with it, but I have always been too lazy to download it (I think you have already heard it), so I thought this was a good excuse to started working with it.
So, I installed ODH, I launched it, I logged in with my Facebook/Oculus account, and I saw that actually, it had a very nice interface and a lot of features. It seemed a fantastic tool, and I was sure that I was going to upload my build in 5 minutes. I headed to the management page relative to HitMotion: Reloaded and I saw this.
The latest build looks to be correctly uploaded to the Production Channel (see the text in the upper right corner of the image), but in the list of channels where I could upload my current build, there is no Production Channel. There are just Alpha, Beta, and Release Candidate Channels. Do you know those moments when you think you can do something in 5 minutes and then… well, you got the idea.
I clicked on the “Manage” button below the name of our game and I found myself again in the web-based developer dashboard, with the upload button that said again that I should use the Oculus Developer Hub to upload my build. It felt like a joke: the web uploader worked so well, so why have they removed it??? I was now kinda stuck in an upload hell… I had no way of uploading my build to the production channel! All our fans (I mean, our moms) were awaiting for the new version of our game, but we had no way of uploading it to the public store.
The solution: how to upload an update to your App Lab experience
There are various solutions to this problem, and I’m going to tell you what worked for me.
According to the documentation, I could use the command-line tool, but I had no willing to go in full-nerd mode. I think I could also upload my build to the Release Candidate channel, and then use a special command to move it from RC to Production (this kind of operation is possible with the command-line tool), but I wanted to do it in only one step. I so chose to use the Oculus uploader inside Unity, which let me use a GUI, and so was easier for me to operate with. In case you are an Unreal person, the good news is that such a tool is available also for UE4.
Let me show you the steps that I followed:
- I built our App Lab experience into an APK as usual inside Unity
- Staying in Unity, I clicked on the menu Oculus -> Tools -> Oculus Platform Tool. Of course you have to have the Oculus Integration plugin installed in your project to see this menu item. At this point, an Oculus Dialog opens up. It is the GUI that will let you upload your build. It isn’t sexy, but it works well. Now we have to put some data here and proceed with the upload
- To get the data you need, open your browser, and go back to the page about your game in the Oculus Developer Dashboard. When you are in it, click on the “API” tab. You should see some numbers… these will be useful in a while.
- Return to the Unity window
- Copy the App ID from the dashboard page into the Oculus Application ID field of the Unity dialog
- Copy the App Secret from the dashboard page into the Oculus App Token field of the Unity dialog
- Relase Channel must be “LIVE”. If you try to write “Production” or any of its variation, it won’t work. The correct name for this field is “LIVE”. I have spent a lot of time to understand this, because it is poorly documented… thank me later for this tip 😉
- As Release Notes write what are the main features of your update. For us, it was “Integrated LIV and bHaptics support. Implemented in-game set area. Various fixes and improvements”
- Build APK File Path has a “Choose…” button. Click on it and find the path to the APK you have just built and that you want to upload
- You can choose if uploading the Debug Symbols or not. If in doubt, don’t upload them.
- Leave all other options as they are, unless you have to change them for some reasons. For instance, if you have Expansion Files for your build, you must select them in the Optional Commands section
- Deselect “Run OVR Lint”. It is recommended by Facebook, but actually it will complain about whatever thing you have not optimized according to Oculus suggestions, and I guess you want to upload your build fast and not get annoyed by the suggestions of the Lint tools. Of course, be sure that your APK has all the correct features as asked by Oculus (so it has IL2CPP backend, ARM64 platform and it is signed) or it will be rejected by the review team
- Hit the Upload button
- Wait for the tool to perform the upload. It may need some tries to do that, but in the end, if you have done everything correctly, it should succeed
- Amazing, at this point your build should be published!
New immediate publishing feature
After I published HitMotion: Reloaded this way, I noticed that the game immediately went live. It seems that Facebook has changed the rules: if your game has already been approved, all the subsequent updates are immediately pre-approved, hence published. Later on, someone from the Oculus team reviews them and tells you if there is something to change. This is great for us devs because we don’t need to wait for 4-5 days for the approval of our build to see our updates go live. They immediately go live!
UPDATE (2021.10.07): Arnaud from the great game Crazy Kung Fu (that you can find on App Lab) suggests that once you have a game that is not only a demo, but something a bit bigger and with a good community (like his game), it is better not to publish directly to the Production channel, but on one of the other channels (e.g. RC) so that to make some tests on the new version of the application before going to Production. In case you want to follow this road, the steps are:
- You upload your build through the Oculus Developer Hub on the channel you want to publish it to (e.g. RC)
- Your people that can access that release channel test it and verify that it is working well
- At this point, you go back to your Oculus Developer Dashboard, head to the page relative to your app, and select the tab Distribution -> Release Channels
- Click on Production (App Lab) channel
- At this point you have a drop down menu inside which you can select a build. Among these builds you should find the one you have uploaded to the Release Channel. Select it to publish it on your Production Channel
- Enjoy your new published version!
And that’s it! Now it’s your time to publish your fantastic new update for your App Lab experience! But before, be sure to share this post with your fellow developers to help them, too!
(Header image by Facebook)