I have submitted an iOS app for review. The reviewer was unable to review the app as it crashes on launch.
The crash report is in a JSON format that is different from the format found in the Apple documentation which looks something like this:
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libswiftCore.dylib 0x00000001bd38da70 0x1bd149000 + 2378352
1 libswiftCore.dylib 0x00000001bd38da70 0x1bd149000 + 2378352
2 libswiftCore.dylib 0x00000001bd15958c 0x1bd149000 + 66956
3 libswiftCore.dylib 0x00000001bd15c814 0x1bd149000 + 79892
4 TouchCanvas 0x00000001022cbfa8 0x1022c0000 + 49064
5 TouchCanvas 0x00000001022c90b0 0x1022c0000 + 37040
6 TouchCanvas 0x00000001022e7374 0x1022c0000 + 160628
7 TouchCanvas 0x00000001022df754 0x1022c0000 + 128852
8 TouchCanvas 0x00000001022df7e8 0x1022c0000 + 129000
9 UIKitCore 0x00000001b3da6230 0x1b3348000 + 10871344
10 UIKitCore 0x00000001b3da6230 0x1b3348000 + 10871344
11 UIKitCore 0x00000001b3e01e24 0x1b3348000 + 11247140
Source: developer.apple.com
The crash report I have received looks more like this:
Did Apple change the crash report format? How can I symbolicate a JSON crash report? Any links or information would be highly appreciated.
I am unable to use the method described in the Apple documentation because the Device Logs Button seem to have been removed from Devices and Simulators Window as described in this post from the Apple Developer Forum developer.apple.com/forums. The method is detailed in this SO comment stackoverflow.com
I am using using Xcode Version 15.0 (15A240d).
If you have a crash log with some JSON at the start followed by a typical crash report, make sure the file has an extension of ips.
Then right click on the file in Finder and choose to open the file with Xcode. Xcode will prompt you to select a project associated with the crash log. Once you select the correct project, you will see the symbolicated crash report and be taken to the relevant line of code in your project that caused the crash.
This works best if the copy of the project you choose represents the code at the time you archived the app. If the relevant file has changed since then, it may point you to the wrong line of code.