TestFlight : App Crash with UnhandledException

I following the documentation to upload my iOS App to the world. It works fine on simulator, it works fine in my device. Next Step is TestFlight.

The doc seems not to be up to date: Submitting to TestFlight — Xojo documentation

  • “In Shared Build Settings, ensure (…) that “Short Version” has a value”: I supposed it was replaced in Xojo by “Non release Version” ?
  • AppLoader was replaced by Transporter (at least 3 years ago)

I used Transporter to check and upload my spa made from Xojo Build → Everything is ok

I’m waiting a few minutes and receive a mail from Apple : “The following build has completed processing:”

On AppStore connect I can send my build to TestFlight users (me)

I receive a notification and can download my App on my device

Unfortunately when I launch it I got an error

In Xcode I receive a Crash Report with my Device Name and last Build ID. Here

Note: My App is basic and use only one plugin : MBS Google Ads from @Christian_Schmitz

Any idea of what’s going wrong ?

You should implement the App.UnhandledException event and record the stack somewhere. That will tell you where the problem actually is.

1 Like

Any idea how to “print” the exception on the console or crash log ?

System.DebugLog IIRC

Are you sure I can see it works with TestFlight and Crash report received on Xcode ?

Well, you could symbolicate the crash report. That might get you closer.

Check console.app it shows system.debuglog in builds also

1 Like

I don’t understand how a device not connect to my computer can send something to my console.app ? Can you be more clear?

I don’t have any idea how to do that?

I found this on the forum: Lots of app crashes but cannot reproduce

It’s look similar error but it doesn’t help me

Please open console.app you will seee the device (if using the same appleid from your mac) in the left-side bar.

1 Like

Yes it works on the console. I only find this warning

Info.plist contained no UIScene configuration dictionary (looking for configuration named "(no name)")

When you built the app, there were several other files created, one of which was a .dSYM file. You must use the exact one that was created for the version you sent to TestFlight.

In your case, you can symbolicate like this by opening a Terminal and going to the folder where the built app and the .dSYM file are and doing something like this:

atos -o /path/to/your/dSYM -arch arm64 -l 0x104ad4000

That should show you the method where the unhandled exception occurred.

I’ve got a tool that I use somewhere around here. I’ll see if I can dig it up and make it somehow available.

1 Like

Here it is. Run this app and press CMD-R. It’ll ask you for two things, the crash log and the dSYM file. You can also drop crash logs onto the app icon in the dock.

Download

1 Like

Thank you for your help. I can’t analyse myself the output. Maybe it somewhere in those lines


|4   Jardinez avec la lune         |0x0000000102f799c4 UnhandledException(RuntimeObject*) + 448 (iOSApplication.mm:117)|
|---|---|
|5   Jardinez avec la lune         |0x0000000102f7bb04 CallUserCode<bool, NSDictionary *, NSDictionary *> + 40 (XojoExceptions.h:48)|
|6   Jardinez avec la lune         |0x0000000102f7bb04 -[XOJAppDelegate application:didFinishLaunchingWithOptions:] + 404 (iOSAppDelegate.mm:75)|

The solution was not so far, it was on already on the Forum just here:

Thanks everybody and thanks to @Jon_Ogden !

Finally it was a good rainy Sunday for development! Monday will be a full test in real device, real conditions

1 Like