iOS Google VR shipping is broken, and no one seem to care

This is going to be a bit of a rant, and an open letter to Epic.

First of all, if you plant to use UE4 to make an iOS App that uses Google VR plugin, dont.

We have been working on our first iOS app VR experience and what was going to be a couple of weeks of work have turn into a two month nightmare. Outdated docs, poorly managed answerhub, and very confusing forum post didn’t help that iOS platform is, for a better word, HELL!

Don’t get me wrong, the app got on time, with days to spare even, on the android side. Works a charm, perfect, beautiful platform to work with. This is the fourth app we make with UE4 on android and we have made work of art VR experiences for clients like Banks and so.

But this one is the first that we has been ask for iOS platform specifically, android is just a plus. So after we procure an stable android build as benchmark we decided to embark on shipping to iPhone. How hard could it be? I wish i knew.

Am not going to bother you with the details from the first weeks. All the problems are documented on my unanswered answerhub post. I know that problems are everywhere, i make a living solving problems, so i made my contribution and solved my own posts on the Answerhub.

After two month of jumping hoops we thought got it, a development ipa that “works”. Now we realise that is all in vane due to a bug that has been unresolved for a year. UE-42339 prevents your Google VR iOS shipping ipa from launching without crashing after splash screen. The problem is vastly documented by numerous posts on the forum by devs asking for a solution as their apps are also due.

We know we are not important to deserve answers or special attention, the only thing am asking for is for Epic to release some statement regarding this problem so many other developers don’t stumble with this huge problem right at the end of the development cycle unaware, when promises have been made and time is up.

All that is left for me at this time is bow my head and accept defeat.

I guess then, this issue still hasn’t been resolved?
I was looking into using UE4 for VR on iphone

My VR app works fine on iOS with google cardboard. The only issue is the VR splash screen + the VR overlay staying when switching HMD ON/OFF . Anyone got a solution on this?

-EDIT : sry development only works, shipping with distribution is broken. 4.20 version …

I couldn’t finish my project after running into this problem. Client is very unhappy about it. ANY solution on this? Is there any alternative plugin?
I’m going to try version 4.21.0 preview 1 today, but my hopes are not high.

You must be pretty ****** off.

As a stand in you can use local split-screen and two cameras to fake it until it works again. I know it sound stupid, but if it works it’s not stupid, right?

There’s also another option here: debug it and fix the underlying issue. Can anyone post log output?

Report the bug to Epic: Unreal Engine Community
and to google via the issues reporter of the GoogleVR Unreal plugin git repository: https://github.com/googlevr-unreal/UnrealEngine/issues

I had another idea for a workaround - does a shipping build work without distribution ticked? If so do a shippiing build with your development mobile provision and resign the IPA afterwards with your distribution mobile provision. I’ve done this in the past for Android builds where something was broken with a distribution export however I’ve not tested this myself for iOS but doing a google search it appears it is possible.

Unreal on windows includes an app that does IPA resigning which would probably work as well.

I made a development build and resigned it and uploaded to testflight. it works fine till iphone x but crashes on iphone xs, xr ,xs max
anyway i proceeded for review… apple responded with this error
Guideline 2.5.1 - Performance - Software Requirements

Your app uses or references the following non-public APIs:

MetalTools.framework, MTLDebugDevice

The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.

Now i am going try with shipping but distribution disabled and resign it

@rajpootathar did that method work?

I’m going to make my own thread because I have a slightly different problem, iOS build with Google vr plugin enabled crashes after splash screen but in development builds. However I’m interested to find out if you were able to successfully resign your ipa. All my attempts to resign iPas using the iphonepackager tool have failed with some sort of key not found error .

ok it did not work either.
Now i downloaded the source code of Unreal… found where MTLDebugDevice is being called … it was inside !UE_SHIPPING_BUILD. so i commented the whole portion as i was doing development build for production… so after commenting it… built the engine. built the IPA in dev mode. resigned it submitted to store again…

I have hope that it will work… fingers crossed

Just to confirm, you’re able to build a project with the google vr plugin enabled and run it on an iphone? I’m not even able to do that. I can build and run projects for iOS but as soon as I enable google vr plugin app crashes immediately after splash screen.

yes, what device are you using?

its crashing on my client’s iPhone XS Max as well. I found out that it will crash with iPhone XR, XS, and XS Max as Google has not updated support for these devices yet.

you can try downloading google’s cardboard application from the app store and test its demo’s.

However, the client’s app is now approved and is available for sale in the app store.

I am sure that, it won’t be allowed to update anymore as Apple’s updated policy that all apps must work with XS Max starting from 27th. So I was just lucky, I pushed the release before 27th.

I’ve tried on an iPhone se and a 7.

Google cardboard application installs and works fine on both.

What engine version you using? And on Mac or Windows?

i am on unreal engine 4.21 and on Mac for iOS…

@rajpootathar Thanks for letting me know. I’ve been using unreal on windows with remote compilation on a mac. Guess I should try just trying to do everything on the mac.

no problem… there must be some configuration issue.

Can some one with iphone xs, xr or xs max test this sample from google ? GitHub - googlevr/gvr-ios-sdk: Google VR SDK for iOS

just run pod update in the package and then test the app. i need to see if google has updated their sdk.

Hi again, I didn’t run the samples you linked but earlier I tested building some projects for iOS with google-vr plugin using UE 4.21 on a mac. Was able to build and run an empty project and my project fine on an old iPhone SE but both failed on an iPhone XR. No errors were showing up in the logs but it would crash pretty soon after splash screen. Could be what you said before about not supporting the new models.

Fitting for this thread as well:

iOS cardboard is no longer supported since 4.22 :frowning:

See the 4.22 release notes:
https://forums.unrealengine.com/unre…-4-22-released

oh this is not good…its not working on latest devices at all.

hopefully google will update it soon