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 ?
Greg_O
(Greg O)
March 12, 2023, 4:32pm
2
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 ?
Are you sure I can see it works with TestFlight and Crash report received on Xcode ?
Greg_O
(Greg O)
March 12, 2023, 4:39pm
6
Well, you could symbolicate the crash report. That might get you closer.
DerkJ
(DerkJ)
March 12, 2023, 5:00pm
7
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
DerkJ
(DerkJ)
March 12, 2023, 5:53pm
11
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)")
Greg_O
(Greg O)
March 12, 2023, 6:12pm
13
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
Greg_O
(Greg O)
March 12, 2023, 6:35pm
14
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:
Yes, it was definitely a signing issue. I just had a chance to go back and look at the code. I still use Xojo.IO.SpecialFolder.GetResource. What had to be changed was that the build step of the file copy to the resource folder HAS to take place BEFORE the signing step of the build process. Otherwise the file is not signed and iOS pukes.
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