Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

How to output for Oculus GO

JFLJFL Posts: 5 Oculus Start Member
Hi, we're putting together a piece for an upcoming art installation that incorporates VR and thought that Oculus GO could be a good solution.

We're familiar with building in Unity and putting the build on a laptop which we then plug a traditional HMD directly in to. How does this work though with Oculus GO?

What do we output to, and how do we get that to run on the device other than via the store as it's not an app just something that makes sense as part of this installation?

Can all of this be done quickly or are there delays/approval processes needed? Thank you!
Tagged:

Comments

  • imperativityimperativity Posts: 3,587 Valuable Player
    Hi,

    We have created a series of documentation and procedures to follow to develop for the Oculus GO.

    Please read this blog here: https://developer.oculus.com/blog/everything-you-need-to-know-to-develop-for-oculus-go/

    Please follow the environment setup instructions here:

    https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-device-setup-go/

    https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-submission-sig-file/#mobile-submission-sig-file

    Bear in mind that Oculus GO does not require OSIG files as Gear VR does---and to iterate and test your applications we recommend using the Release Channels for this.



  • ridoutbridoutb Posts: 72 Oculus Start Member
    edited May 2018
    @imperativity  I admit I am frustrated and confused on 4 fronts right now, all relating to deploying a Unity build to the Oculus GO. 

    1) Connecting my GO to a PC. 

    1a) I've noticed the when I'm in developer mode, the GO does not ask if I want to allow the PC access to files. Should I be in Developer mode? If so, should it still ask me that question when I connect it to my PC? Is it a problem if I am not prompted with this question?

    1b) I've installed the ADB driver (and also had previously had drivers installed automatically when plugging into USB). Regardless, my device rarely shows up in File Explorer. If I uninstall it through the device manager and keep plugging it into different USB ports, sometimes I get lucky. Do I need to see my GO in File Explorer?

    2) Android Studio Setup

    2a) This page (https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-studio-basics/) refers to "Mobile SDK VRSamples". It's not immediately obvious where to get that download. My best guess would be "Native Mobile" on the Downloads page, but that doesn't seem to have what I need. Where is the download?

    2b) I don't understand how Android Studio comes into play. Do I need to use it? I'm used to developing in MonoDevelop (C#) for Unity. What am I using Android Studio for?

    2c) Do I need to tell Unity where my Andriod SDK(s) are? How do I do that?

    3) Signing Apps and OSIG

    3a) I get I don't need and OSIG for GO. This page (https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-submission-sig-file) says "Unity automatically signs Android applications with a temporary debug certificate by default.". That's good enough for me to get a Hello World app running, right? 

    4) My main problem is the documentation never walks me through building my app in Unity and testing it on the GO. I'm just looking for "Hello World". That's what I really need to know. Right now I'm just stuck. 

    Thanks for taking the time to read this. I hope you can help. 
  • imperativityimperativity Posts: 3,587 Valuable Player
    edited May 2018
    Hi,

    The blog file I first linked is a run down of what Oculus GO offers that is different from Gear VR and has best practices on how to develop for it and what new approaches are needed. It is not a thorough how to guide.

    Regarding this statement:

    Right now I'm hoping someone in the community like Fuseman tackles this, because it's not coming from Oculus, sadly.

    Developing for Oculus GO is in many ways the exact same process as developing for Gear VR, with, as I mentioned up top, the need for an OSIG file. If you could give additional context on where exactly you are stuck in the development process for Oculus GO, that could be helpful feedback for me to pass off internally and to our documentation team.

    I'll try to provide specific of where I'm getting stuck. In general, I'm just not sure I'm taking the right steps because they are listed all over the place. 
    Sounds good. Let me know where your pain points like and I can work to address them.


    EDIT: I posted this response at the same time you responded above. Let me loop in my docs team to address this.

  • ridoutbridoutb Posts: 72 Oculus Start Member
    @imperativity Thank you. To summarize the problem is the docs are scattered about and they never seem to circle back to Unity to actually build something. For now, I'm trying to find/follow GearVR documentation. Even then, there are gotchas like needing the Android Support Setup package for Unity... I'll keep pushing through. 
  • imperativityimperativity Posts: 3,587 Valuable Player
    1) Connecting my GO to a PC. 
    1a) I've noticed the when I'm in developer mode, the GO does not ask if I want to allow the PC access to files. Should I be in Developer mode? If so, should it still ask me that question when I connect it to my PC? Is it a problem if I am not prompted with this question?
    1b) I've installed the ADB driver (and also had previously had drivers installed automatically when plugging into USB). Regardless, my device rarely shows up in File Explorer. If I uninstall it through the device manager and keep plugging it into different USB ports, sometimes I get lucky. Do I need to see my GO in File Explorer?
    The above is a known issue at this time and we are actively working to address this.

    2a) This page (https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-studio-basics/) refers to "Mobile SDK VRSamples". It's not immediately obvious where to get that download. My best guess would be "Native Mobile" on the Downloads page, but that doesn't seem to have what I need. Where is the download?
    2b) I don't understand how Android Studio comes into play. Do I need to use it? I'm used to developing in MonoDevelop (C#) for Unity. What am I using Android Studio for?
    2c) Do I need to tell Unity where my Andriod SDK(s) are? How do I do that?
    2a and 2b --- This is for Native application development, not Unity. You won't be using Android Studio if you are using Unity for development.

    2c -- No, but you do need to setup your development environment so that your system knows where these SDKs and JDKs are as per the documentation here:

    https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-studio-setup-android/

     https://developer.oculus.com/documentation/unity/latest/concepts/unity-mobileprep/

    3) Signing Apps and OSIG
    3a) I get I don't need and OSIG for GO. This page (https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-submission-sig-file) says "Unity automatically signs Android applications with a temporary debug certificate by default.". That's good enough for me to get a Hello World app running, right? 
    Yes, that is correct.

    4) My main problem is the documentation never walks me through building my app in Unity and testing it on the GO. I'm just looking for "Hello World". That's what I really need to know. Right now I'm just stuck. 
    We are aware that our guide needs an overhaul and this is something that we will address at some point in the near future. We have a fairly active community here that can give you advice on what you are looking for, too.
  • ridoutbridoutb Posts: 72 Oculus Start Member
    edited May 2018
    Thanks for reviewing all that @imperativity  

    I'm getting closer but I'm stuck with an APK validation error. 

    I've managed to switch Unity to Android build (which required Android Support Setup for Unity). 
    I generated an AndroidManifest file using Tools > Oculus > Create Store compatible androind-manifest...
    I built an APK. 
    When I upload it as a new Alpha, I'm getting the following:

    APK Signed With Signature Schema V2
    APK is signed with Signature Scheme V2, which is not yet supported. Please disable signing with Scheme V2 and upload again (https://developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2).



  • ridoutbridoutb Posts: 72 Oculus Start Member
    I managed to get a Unity app running on my go via Build and Run. At least I can iterate and test now. So, I have made it to Hello World. 

    For the record I ran into the issue here (https://forums.oculusvr.com/developer/discussion/64603/anyone-have-trouble-with-oculus-go-disappearing-from-adb-devices) which imperativity has already said has been escalated. Rebooting my GO while it was connected made my device appear in the ASB device listings.
  • imperativityimperativity Posts: 3,587 Valuable Player
    edited May 2018
    @ridoutb

    Regarding this issue:

    APK Signed With Signature Schema V2
    APK is signed with Signature Scheme V2, which is not yet supported. Please disable signing with Scheme V2 and upload again (https://developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2).

    If you set your switch AndroidBuildSystem to internal it solves this issue.


  • ryunosukejansenryunosukejansen Posts: 2
    NerveGear
    edited May 2018
    Hia

    So I had this client a while back who had me make a GearVR project for a closed group of 50 people and the app was never intended to be released to the general public. Everyone had to register in advance and send us their device ids as part of the process and eventually, on the day it was a major f***up ending with me having to manually put every device into developer mode and building the app to each device in turn... That did not work out well at all...

    The client is still very much into VR and has been as keen as can be about the GO ever since it was first announced. He contacted me yesterday to say he might have another project lined up for me and this time he is targeting the GO. The first question that jumped to my mind was "How the heck are we gonna distribute this? Most likely this will be for a select few people at any one time since this will be a company pitch, not a world wide entertainment app. So how will this work?"

    So far I have read that I WILL need an osig file except I don't need it... only, I do... except I don't. So for the love of all that is holy in this world can someone please just answer me with a simple yes or no: "Do I need an osig file at any point while developing an app targeting the GO or when I am ready to distribute?"

    Secondly, how do I distribute this to a select few people? Will I have to guide business execs and architects how to put their devices into developer mode and how to manually upload APK files via the command line interface after setting up the various command line tools which may or may not include the Android Developer Studio which apparently I don't need in Unity as long as the environment is correctly setup ... which is something you do in Studio because that is how you get the stuff you need to install before you run into the bug where you can't build the app until you google the problem and find you need to download an older version to install only one file from that old version into the location of the newly installed version so that you basically trick the system into thinking you have an up to date installation but actually run an outdated core in the background as that is what is required to actually get things to build and run.

    I saw a 3rd party service offer to do what I thought would be the obvious choice which is to publish the app to the Oculus store and just set it as private or incomplete or whatever and just have the file made available to limited people. So can I do that or do I need to register all the recipients (i.e. people he wants to deliver a sales pitch to) as members of my client's organisation and have the people he wants to pitch to send him their phone's guids before they can download the pitch?

    Personally, after that first cluster***** I threw my GearVR in the back of the closet and haven;t touched it since. Instead I got myself a Rift and said I am now just building games for the Rift and s*** the GearVR.... but now that the client is back in the picture and HE is still super excited about the GO I guess I must either tell him to find another developer because even though I can build his project in a week I will require a month or three to figure out how to publish the finished project onto the GO... or I will need to go and learn how to do it. And so far the only question I have asked was "Do I need an osig file?" and the only answer I have found so far is "Yes, only no but yes except no, but yes. But no."

    So can someone just tell me already, please? Do I need an osig file during or after development?
    The next question is about the keystore. Unity creates a temporary one which we need to replace with a new one before publishing and THAT one we need to keep forever for any updates. Well, that is true for the GearVR. Is that still the case with the GO also? I am just a contractor after all. After I hand off the project I may or may not be involved with the project updates so do I need to keep the keystore for all eternity just in case or hand it off to the client or do we not need that for the GO?

    I kid you not, I made his last project in less time than it took me to figure out how to publish the project and here I am still asking the same questions... How do I publish the project? Why is this made so painfully uber-over-complicated? Can't I just have a "Build and upload" option / tool that uploads the project to the store from where I can give access to people? Call them beta testers if you will. That would make so much simpler if I could just upload the project and have them download it directly from their device. If such a thing could exist then I just have 2 more questions: Would I need an osig file to make use of that and would I need a keystore for that?

    Thanks for any input. :) 
  • imperativityimperativity Posts: 3,587 Valuable Player
    @ryunosukejansen

    Hi! Sorry to hear about your past frustrations. Just to confirm: no Osig file is required for the Oculus GO, as the osig file was a means of making samsung phones function correctly on our platform.

    Here is some pertinent documentation to help you address your other issues:

    1) https://developer.oculus.com/documentation/mobilesdk/latest/concepts/book-intro/

    From the above docs:

    Developing for Oculus Go and Gear VR

    For the most part, developing apps for Oculus Go and Gear VR is the same. However, you should be aware of some key differences between building for the two platforms, especially if you've previously built an app for Gear VR.

    Oculus Go has the following restrictions:

    • No Google Play Services. Unlike the Samsung Galaxy devices that run Gear VR, Oculus Go does not ship with Google Play Services installed. You cannot rely on Google Play Services (e.g. Google Firebase, Google Cloud Messaging, etc) when running on Oculus Go.
    • No 2D Surface. Oculus Go does not have a 2D phone display, and therefore some app behaviors (such as push notifications, or authentication via a separate Android application) do not make sense on Oculus Go.
    • No Camera. Oculus Go does not have a camera, and cannot run applications that rely upon access to a camera.
    • No HMD Touchpad. Oculus Go does not have a touchpad on the HMD. Your app should not refer to an HMD touchpad when running on Oculus Go.
    • Different Controller. The Oculus Go Controller and Gear VR Controller share the same inputs: both are 3DOF controllers with clickable trackpads and an index finger trigger. Though these two devices provide the same inputs, the physical design of each is distinct. If your app displays a visible controller, you should change the model displayed depending on whether you are running on Gear VR or Oculus Go. Alternatively, a stylized controller model that is distinct from both the Oculus Go Controller and the Gear VR Controller is acceptable.

    2) https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-device-setup-go/

    From the above docs:

    Device Setup - Oculus Go

    This section will provide information on how to set up your Oculus Go device for running, debugging, and testing your application.

    To begin development locally for Oculus Go, you must enable Developer Mode in the companion app. Before you can put your device in Developer Mode, you need to have created (or belong to) a developer organization on the Oculus Dashboard.

    To join an existing organization:

    1. You'll need to request access to the existing Organization from the admin.
    2. You'll receive an email invite. Once accepted, you'll be a member of the Organization.

    To create a new organization:

    1. Go to: https://dashboard.oculus.com/organization/create
    2. Fill in the appropriate information.

    Enable Developer Mode

    Then, to put your Oculus Go in developer mode:

    1. Open the Oculus app on your mobile device.
    2. In the Settings menu, select your Oculus Go headset that you're using for development.
    3. Select More Settings.
    4. Toggle Developer Mode on.

    Install the Oculus Go ADB Driver (Windows only)

    If you are going to be pushing builds from a Windows machine, you'll need the Oculus Go ADB Driver.

    1. Download the zip file containing the driver.
    2. Unzip the file.
    3. Right-click on the .inf file and select Install.

    Once complete, you'll be able to use Android Debug Bridge (adb) to push builds to your Oculus Go. 


    3) For distribution you could go two easy routes:

    a) Use release channels and host your application there and add all emails addresses associated with those who need access to your application.

    b) Send a build for review to the oculus store and request keys only access for the apps in the reviewer notes section. Your application will use the Oculus infrastructure, but will not be visible on the store. You can then generate an unlimited amount of keys for your clients to redeem and get access to your application.

    Let me know if you need any further assistance here.

  • ryunosukejansenryunosukejansen Posts: 2
    NerveGear
    Thanks man. That info was super helpful! :D Love the clear and unmistakable opening! :D Much appreciated
  • MorbidMonkeyMorbidMonkey Posts: 1
    NerveGear
    edited May 2018
    Just going to throw this out there..... super easy way to get video output with out the hassle....... go live  on Facebook from your OGO  and do a screen capture on the computer. Super simple no headache........ just for exporting video and live shot from the OGO.
  • olivier1232olivier1232 Posts: 2
    NerveGear
    @imperativity, where can we find a step-by-step setup for developing for the Oculus Go with Unity on a Mac. As mentioned several times before by many others, the info is scattered in many different areas and always leaves massive holes preventing from getting it done in an effective manner. The different parts jump from 10,000 feet up in the air down to the most irrelevant details for when a developer is just starting. Would you know of an effective tutorial? There are a couple for Windows (which by the way should be in your documentation) but none for Mac. Please help. I cannot dedicate the time to search and learn all these disparate pieces of information - this is definitely not showing enough respect for developers.
  • SpooOnShoESpooOnShoE Posts: 1
    NerveGear
    I completely agree that the documentation is either nonexistent or poorly written as to be useless. I've never had this much problem finding a short concise instruction on how to get up and running. I've been using unity for a decade but i've never had this much problem getting simple answers. Is it possible? What are the steps as of July 2nd 2018. Please. 
  • johanneslundbergjohanneslundberg Posts: 3
    NerveGear
    I found this guide recently with all needed steps and can confirm it works:
    https://medium.com/inborn-experience/how-to-build-an-app-for-the-oculus-go-from-start-to-finish-with-unity-cb72d931ddae

    The only issue I stumbled upon was a build error. Took a while to figure out the fix, but the best workaround until Unity fixes this is to download the "mips NDK toolchain" linked as mips64el-linus-android from this thread:
    https://stackoverflow.com/questions/42739916/aarch64-linux-android-strip-file-missing
  • nevynnevyn Posts: 3
    NerveGear
    Thanks for this thread! Helped me put together some of the last pieces to get my Oculus Go development working. I also had the "mips NDK toolchain" issue, but solved it by changing Build System to "internal" instead of Gradle.

    Another "gotcha" was to allow permission from within the Go's UI when adb was trying to authorize/access it for the first time. Took a while to realize I had to put on the headset to allow it, and just enabling developer mode wasn't enough.

    I put together my own guide as a SO self-answer here: https://stackoverflow.com/a/52882622/48125 . It's Mac-centric so might not be as useful as @johanneslundberg's Medium post if you're running Windows. 

    Hope that helps!
Sign In or Register to comment.