iOS shipping build crash

Here is a build log. I’ll try to figure out how to resign the IPA.

Ok, I re-signed the IPA with the development certificate, but can’t install it on the phone. Xcode gives a “App installation failed - there was an internal API error”. I’ve tried resigning it with a few different apps in case it was a problem with resigning but they all give the same result. If it would help, do you have a secure way for me to send the IPA?

Hi Kyle, there is no pre-game movie/functionality here, the only thing set is the loading screen image.

Ya, that all looks pretty standard and unfortunately is not telling me anything.

You can re-sign the IPA with IPhonePackager. It’s in the Engine/Binaries/DotNET/IOS folder. You can skip the initial ask for a project file (hit cancel) and then go to the advance tab in the UI where there will be a Re-Sign IPA button.

-Pete

Ya, I’ve attached one of support guys to the ticket to talk with you about how to send it.

-Pete

Hi Derek,

If you would like to provide the IPA privately, you can send me a PM on the forums (I appear as Tim C there) with a link to download the file.

Tim

Ok, I sent a PM. Thanks.

Thanks Derek. I just pulled those files down, and will make sure to get them to Pete so he can take a look. I am not sure if he will be able to look at them today.

Tim

Derek, we have been unable to install the IPA at all. The development one didn’t include any content at all, but even when we added the content to it from the shipping and re-sign it we can’t get it to install.

My next suggestion, run the game on your device. Once it crashes, there will be a crash report in Settings->Privacy->Analytics. It will be something like GameName-2018-02-07-154032.ips (where the last bit will be the date and time of the crash). If you find one of those, and post it here, that should provide the thread and callstack of the crash. You may actually just have some these from previous crashes still on the device.

-Pete

Looking at the plist contents, there is already a ton of NSCameraUsageDescription keys all over the place in there. But it has “SiloTest camera use.” as the description. Are you using some third party plugin?

-Pete

I disabled the Google VR plugin to check that, and yes, that plugin is generating all the NSCameraUsageDescription keys. After disabling it then the custom plist field works as expected. So GoogleVR is overriding it somehow.

IOSEngine.ini

info.plist - without Google VR plugin enabled

Update - after disabling Google VR, then publishing to Test Flight, the app runs without crashing. So there is some issue with the plugin.

You might need to do the following in the Project Settings, IOS Settings Tab, Additional Plist Data text field:

NSCameraUsageDescription\nCamera is used for VR functionality

The \n might be what is missing. Make that change and then post your IOSEngine.ini from you Game/Config/IOS directory. We can make sure it has the right information in it from there.

-Pete

And you are using the Google VR plugin correct? Assuming that is the case, I do believe there was a bug in the plist updating code for plugins but I thought that was fixed in 4.18.

In any case, you can get around this by going to Engine/Plugins/Runtime/GoogleVR/GoogleVRHMD/Source/GoogleVRHMD_APL.xml and removing the iosPListUpdates section from that file. Re-enable the plugin and it shouldn’t mess up the plist and your AdditionalPList section should then work.

-Pete

Right, using Google VR plugin. I guess that bug is still around because changing the XML file fixed it. However, the app is still crashing even with the corrected info.plist file. There must be something else in the Google VR plugin causing the crash in the distribution build.

Hi Derek, we’re going to investigate this on our end. Sounds like you are unblocked by disabling the plugin in the meantime. Thanks for reporting the issue!

Great, I hope the plugin can be fixed. Our app was designed with Google VR in mind, so we’ll have to put the project on hold until it’s working.

Hi Derek,can you please remove this block from the GoogleVRHMD_APL.xml and report your results? This hopefully resolves the issue.

		NSCameraUsageDescription
		$(PRODUCT_NAME) camera use.

Hello, I have tried that as Peter recommended, and while it does fix the resulting plist file, it does not stop the app from crashing when generating a distribution build.

Hi Derek, thanks for trying that. We’re investigating this further. We will keep you posted.