I’ve submitted a very basic application to the IOS app store and it was rejected because it crashed almost immediately.
I’ve tested it on a number of different iPhones and iPads and it runs fine without crashing. Any idea how to diagnose what’s causing the crash based on what’s in the crash report - which is absolutely foreign to me.
This app is extremely basic and is primarily a reference application.
Try this small app I put together a few months ago. You just have to drag the app binary you submitted and the crash report into the specified locations and then you will have a more legible stack trace with your Xojo method calls.
I can attest to the usefulness of Jason’s app :). Just remember to also drag the symbol (.dSYM) file into the same folder as the app.
Not sure I’m doing this correctly, but I drag the ipa file to the location labeled “Drag app binary here” and I drag the crash log to the location labeled “Drag crash log here”. When I do this, I get an error “An exception of class xoxo.io.ioexception was not handled. The application must shut down.”
I get no indication when I drag the files to the proper location that the application has accepted it.
You need to put the app binary and the .dSYM file into the same folder before dragging the app binary onto Jason’s app. I don’t believe the .IPA file is of any use in this situation as it’s just a compressed version of the app binary for the purposes of uploading to iTunes Connect.
Tried that too. All files are in the same folder (my build folder) and still get the same error.
Should I get some feedback when dragging the app file to the application?
here is a portion of the crash log:
xception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x000000019706b270 0x197050000 + 111216
1 libsystem_pthread.dylib 0x000000019710916c 0x197104000 + 20844
2 libsystem_c.dylib 0x0000000196fe2b14 0x196f80000 + 404244
3 libsystem_c.dylib 0x0000000196fb7a38 0x196f80000 + 227896
4 ACAIR 0x00000001001c49a0 0x100038000 + 1624480
5 ACAIR 0x00000001001c4d38 0x100038000 + 1625400
6 UIKit 0x00000001897c3120 0x189740000 + 536864
7 UIKit 0x00000001899da7e4 0x189740000 + 2729956
8 UIKit 0x00000001899dd198 0x189740000 + 2740632
9 UIKit 0x00000001899db708 0x189740000 + 2733832
10 FrontBoardServices 0x000000018d3e53c4 0x18d3cc000 + 103364
11 CoreFoundation 0x0000000184c90278 0x184bb0000 + 918136
12 CoreFoundation 0x0000000184c8f380 0x184bb0000 + 914304
13 CoreFoundation 0x0000000184c8d9a4 0x184bb0000 + 907684
14 CoreFoundation 0x0000000184bb92d0 0x184bb0000 + 37584
15 UIKit 0x00000001897bc3cc 0x189740000 + 508876
16 UIKit 0x00000001897b6f3c 0x189740000 + 487228
17 ACAIR 0x00000001001c53ec 0x100038000 + 1627116
18 ACAIR 0x0000000100040284 0x100038000 + 33412
19 ACAIR 0x000000010003cafc 0x100038000 + 19196
20 ACAIR 0x000000010003c584 0x100038000 + 17796
21 libdyld.dylib 0x0000000196f52a04 0x196f50000 + 10756
Hi John, you just need to drag the app binary (.app) into the green space on the left, and then drag the crash report into the green space on the right. Then press the Symbolicate button and select a location to save the new crash report to which will have the method names added back in instead of binary addresses.
For an IPA, I think you might be able to change the extension of the IPA to .zip and then open up the zip archive to find the binary (make a copy of the app first, of course) and then you should be able to use the the app.
The idea of the crash report like that is that it isn’t readable to just anyone so they cannot reverse engineer your app as easily so unfortunately it’s not very helpful to us in that form. What the Crash Symbolicator app does is simply wrap the Xcode provided command line tools to add the method calls back into the crash log so you know what happened.
If you have more questions, please ask.
Thank you for the reply Jason, I will try it again today when I get to the office. I believe I was doing exactly what you described; however, the Symbolicate button would never become enabled and I would get an io exception error.
In the interest of perseverance I will try again today.
Jason - Did exactly what you described and still received the io exception error. I think I know what is causing the problem; however, in the interest of fixing your nifty little program, I’d be happy to send you the crash log and app file to identify the problem.
Sure, you can send them to me in a PM at your convenience. I’m away from my computer for the next couple of hours so I won’t be able to look into it for a little bit unfortunately.
Sorry for reviving an old thread, but trying the app that Jason linked to above, drag and drop no longer appears to work as it should (using Sierra). Until a new version is created, are there any other methods for figuring out crash logs in iOS?
Yes Xcode !
Open Xcode, connect your device.
In the menu go to Windows > Devices
Select your device, click on the “View device logs” button.
Drag & drop the dSYM file in the log window
Like @Bob Keeney I am also sorry for reviving an old thread. @Jérémie Leroy I think your suggestion will only work if the crash occurs on your own device? I receive crash logs from users of my app in Xcode’s Organizer window. Obviously if your app was written in Xcode then this is a useful way to symbolicate the log and even find the area of your code causing the issue.
@Jason King 's CrashSymbolicator doesn’t seem to work for me now either. Is there a way for those of us using Xojo to symbolicate these crash reports?
Yes sorry I assumed Bob was talking about crashes on his own device.
There’s no need to apologise. Bob may well have been taking about his own device.
But do you have a suggestion for those of us trying to work out what’s going on with user crash reports?
Unfortunately for you, but fortunately for me, I’ve never had a user report a crash in one of my iOS apps. So I don’t have much info about this…
But I think I saw some solutions implied drag & drop of the dSYM file onto the crash report when viewed in the console.
Yes unfortunately for me, our users have a toll-free support line and a team to answer their call so they tend to report … everything! ;). You can also see your crash reports in Xcode even if the user doesn’t let you know.
My current app has been in the store for two months (I’m working on a big update) and only has about 20 error reports out of more than 20,000 sessions in that period so it’s not as though it’s falling apart. But one of the errors was reported by 11 different devices and another by 5 different devices to I’d like to try to pinpoint the issue before I finalise my new release.