x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

iOS shipping build crash

Hi, I'm working on an iOS project which runs successfully when testing via the Launch menu in Unreal Editor, but crashes at the launch screen when testing the shipping build.

After generating the build (using "For Distribution" in project settings), uploading to Apple TestFlight, then downloading the app, it launches but freezes (first launch) or crashes (subsequent launches) on the launch screen.

The test case is a blank blueprint project set to Mobile / Tablet with No Starter Content.

I'm on macOS Sierra 10.12.6 with Xcode 9.1

The crash long mentions SPRINGBOARD as the termination reason, any pointers on how to fix this would be appreciated.

Crash Log

Product Version: Not Selected
Tags:
more ▼

asked Sep 12 '18 at 01:43 PM in Bug Reports

avatar image

Answers.Archive STAFF
1.9k 206 313 684

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Hi Derek - we're seeing the same call stack in our project. Are you playing a movie on the loading screen? Or otherwise doing anything movie related?

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

3 answers: sort voted first

Hi,

So we have seen the SPRINGBOARD crash here locally when closing the application, so I suspect your application is just closing for some reason. The easiest way to find that out is to enable logging in a shipping build. In your game's Target.cs (Game/Source/Game.Target.cs where Game is your game name) add

bUseLoggingInShipping = true

to the SetupGlobalEnviroment method and then you should start getting logs in a shipping build. Run the downloaded one again with logging enabled and then after the crash pull the logs off and post them. Hopefully they will give us what we need to figure out the problem.

-Pete

more ▼

answered Sep 12 '18 at 01:43 PM

avatar image

Answers.Archive STAFF
1.9k 206 313 684

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Thanks Pete, will do. In this case the file was in Config/DefaultGame.ini

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Peter any tips how to compile using the target.cs file? I'm only familiar with packaging through the Unreal Editor interface.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

You are using the Launcher version of the editor, correct? If so, you can build with the editor, but you will need to add a code file to force it to build the project. In the editor, there is a menu command to add a code class. Just adding an empty class is enough.. Then when you package the game as you have in the past, it will build the executable as well.

-Pete

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Peter OK, that worked adding the empty C++ class via the content browser. That way it automatically created the Target.cs file in /Source and I could set the variable you mentioned originally. I also had to delete the Target.cs file in /Intermediate/Source because it was causing compilation errors due to having duplicate contents.

So I packaged and uploaded to Apple TestFlight, downloaded and ran the app, and now it is working without any crashing! It seems the crash was prevented somehow in the process of setting the debug variable.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Arggh, I was hoping it would give us more insight in to the problem. Do you have the original IPA? I might be able to figure it out if I ran it locally.

-Pete

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

I do, but now I uploaded another build and it's crashing again - however there are no error logs even though use logging in shipping is set to true.

One thing that may help - the time that it worked without crashing, it generated a IPA named "Distro_ProjectName.ipa" whereas now (and before when it was crashing) it's generating a "Distro_ProjectName_Shipping.ipa" file. I'm not sure how I generated the file without _Shipping before, since it forces the Shipping preset when clicking "For Distribution" in packaging settings.

The IPA without _Shipping is about +70 MB bigger.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

The extra size of the shipping build is just the bundled debug information in the executable. Have you tried re-signing the shipping distribution IPA with a development certificate and run it on a local device to see if it works? Lastly, any logs from your build would potentially help us diagnose the problem.

-Pete

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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?

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM +

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

-Pete

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

After a call with Martin, he suggested adding a plist entry for camera usage.

I added this to "Additional Plist Data" but it seems it did not get added to the build (I'm doing a full rebuild with shipping/distribution settings). This is what I put in the plist field: NSCameraUsageDescriptionCamera is used for VR functionality Here is the info.plist contents

Also, if it helps to diagnose the problem, this project uses the Google VR plugin.

infoplist.txt (6.8 kB)
avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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!

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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.
     
 
avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

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

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Hi Derek, sorry for the delayed response but we do have an update for you. After investigation, we have learned that the bug fix will need to come from Google. They have prioritized a fix for their next public release, which was communicated to me to be in the June time frame. Apologies that we can't have something for you sooner. Thank you for your patience!

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Ok, thanks for the update.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Hi, just checking in to see if Google has any progress on the bug fix. Thanks.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Hey Derek,

This issue is being tracked here:

UE-55910 - Prompt for camera permissions when running Google VR plugin

You can check the status of it there, but since Google isn't using our bug tracking database, it might take awhile to get updated. The last update I see is from April where google said the issue had been "escalated on our side to a major focus for our next release 1.150, that is most likely going to be available publicly at the beginning of June.", but I haven't confirmed that release happened or included this fix, have you happened to try the newer version from Google?

Thanks.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Hi Joe,

I just tested building with 4.20, it still crashes after testing with TestFlight. Seems Google hasn't updated the library yet.

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM +

Oh ok, I guess we're still waiting on them unfortunately. I'm not sure how soon we can expect a fix from them. Sorry about the inconvenience.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Hi Derek,

Thanks for letting us know about this issue. We just ran into this ourselves internally, and have entered UE-52328 to investigate what is happening. We are still gathering information about this, and unfortunately do not yet have a workaround or solution.

Tim

more ▼

answered Sep 12 '18 at 01:43 PM

avatar image

Answers.Archive STAFF
1.9k 206 313 684

avatar image Answers.Archive STAFF Sep 12 '18 at 01:43 PM

Hi Tim, I added a comment to Peter's answer with more details.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

After a call with Martin, he suggested adding a plist entry for camera usage.

I added this to "Additional Plist Data" but it seems it did not get added to the build (I'm doing a full rebuild with shipping/distribution settings). This is what I put in the plist field: NSCameraUsageDescriptionCamera is used for VR functionality Here is the info.plist contents

Also, if it helps to diagnose the problem, this project uses the Google VR plugin.

infoplist.txt (6.8 kB)
more ▼

answered Sep 12 '18 at 01:43 PM

avatar image

Answers.Archive STAFF
1.9k 206 313 684

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question