1

My app was rejected with this reason:

Your app crashed on iPad running iOS 13.4.1 on WiFi when we:

  • Tapped on any locked content
  • Tapped on the settings icon

We have attached detailed crash logs to help troubleshoot this issue.

I tested my app. Everything work fine. How can I find the error?

One of three crashlogs:

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x000000010403514c
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [630]
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   appTime                         0x000000010403514c 0x104014000 + 135500
1   appTime                         0x00000001040351b8 0x104014000 + 135608
2   UIKitCore                       0x00000001acfece08 -[UIViewController _sendViewDidLoadWithAppearanceProxyObjectTaggingEnabled] + 100
3   UIKitCore                       0x00000001acff1898 -[UIViewController loadViewIfRequired] + 936
4   UIKitCore                       0x00000001acff1ca0 -[UIViewController view] + 28
5   UIKitCore                       0x00000001acf1cccc -[_UIFullscreenPresentationController _setPresentedViewController:] + 80
6   UIKitCore                       0x00000001acf10810 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 188
7   UIKitCore                       0x00000001ad0014bc -[UIViewController _presentViewController:withAnimationController:completion:] + 2616
8   UIKitCore                       0x00000001ad004014 __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 104
9   UIKitCore                       0x00000001ad00451c -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 508
10  UIKitCore                       0x00000001ad003f64 -[UIViewController _presentViewController:animated:completion:] + 196
11  UIKitCore                       0x00000001ad0041d0 -[UIViewController presentViewController:animated:completion:] + 164
12  UIKitCore                       0x00000001ad791db0 __67-[UIStoryboardModalSegueTemplate newDefaultPerformHandlerForSegue:]_block_invoke + 248
13  UIKitCore                       0x00000001ad796ac4 -[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:] + 292
14  UIKitCore                       0x00000001ad796970 -[UIStoryboardSegueTemplate _perform:] + 92
15  UIKitCore                       0x00000001acff43b0 -[UIViewController performSegueWithIdentifier:sender:] + 104
16  appTime                         0x0000000104023c44 0x104014000 + 64580
17  appTime                         0x0000000104023338 0x104014000 + 62264
18  UIKitCore                       0x00000001ad80bb4c -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:isCellMultiSelect:] + 1200
19  UIKitCore                       0x00000001ad80b684 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 108
20  UIKitCore                       0x00000001ad80be8c -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 268
21  UIKitCore                       0x00000001ad63b94c _runAfterCACommitDeferredBlocks + 316
22  UIKitCore                       0x00000001ad62b2f4 _cleanUpAfterCAFlushAndRunDeferredBlocks + 232
23  UIKitCore                       0x00000001ad65b744 _afterCACommitHandler + 76
24  CoreFoundation                  0x00000001a9504fb8 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
25  CoreFoundation                  0x00000001a94ffeac __CFRunLoopDoObservers + 420
26  CoreFoundation                  0x00000001a9500328 __CFRunLoopRun + 968
27  CoreFoundation                  0x00000001a94ffc34 CFRunLoopRunSpecific + 424
28  GraphicsServices                0x00000001b364938c GSEventRunModal + 160
29  UIKitCore                       0x00000001ad63222c UIApplicationMain + 1932
30  appTime                         0x000000010401b3ec 0x104014000 + 29676
31  libdyld.dylib                   0x00000001a9387800 start + 4
user
  • 11
  • 2
  • You need to symbolicate that crashlog to see where in your code it crashed. Also, think about what might be different when reviewer installs your app for the very first time, compared to what you do on your development setup. – Gereon Apr 18 '20 at 13:29
  • @Gereon I added symbolicated code in question. Nothing can be different when the reviewer installs my app for the first time. For all development time I send several apps with same code and sometimes one reviewer find crash but another not find some crashes.... – user Apr 18 '20 at 13:40
  • `I added symbolicated code in question` - where? – Gereon Apr 18 '20 at 18:20
  • @Gereon I use this to symbolicate https://stackoverflow.com/a/53152061 And add code under this text `One of three crashlogs:`. Is this not a symbolicate code? I am doing something wrong? – user Apr 18 '20 at 18:22
  • No, this is not a symbolication. Check your post, it only lists hex addresses in `appTime 0x000000010403514c 0x104014000 + 135500`. That's meaningless gibberish. Show what lines/files the symbolication resolves for that, and show us that code. Otherwise, noone will be able to help you. – Gereon Apr 18 '20 at 18:52
  • @Gereon I trying symbolicate like `Apple` recommend: 1.Connect an iOS device to your Mac 2.Choose "Devices" from the "Window" menu 3. Under the "DEVICES" section in the left column, choose a device 4. Click the "View Device Logs" button under the "Device Information" section on the right hand panel 5.Drag your crash report onto the left column of the presented panel. Xcode will automatically symbolicate the crash report and display the results. What wrong? – user Apr 19 '20 at 11:16
  • @Gereon Please tell me how to symbolicate .crash file? I trying but nothing... – user Apr 23 '20 at 10:00
  • Sorry, I can't add anything useful to the links/methods that have already been posted. – Gereon Apr 23 '20 at 10:38

1 Answers1

0

Short answer, you use the crashlog to identify the part of code where the app crashed, and be effective with writing a fix.

Now the long answer:

Refer to the Technical Note TN2151 - Understanding and Analyzing Application Crash Reports on Apple Developer website.

When an application crashes, a crash report is created and stored on the device. Crash reports describe the conditions under which the application terminated, in most cases including a complete backtrace for each executing thread, and are typically very useful for debugging issues in the application. You should look at these crash reports to understand what crashes your application is having, and then try to fix them.

and

Crash reports with backtraces need to be symbolicated before they can be analyzed. Symbolication replaces memory addresses with human-readable function names and line numbers. If you get crash logs off a device through Xcode's Devices window, then they will be symbolicated for you automatically after a few seconds. Otherwise you will need to symbolicate the .crash file yourself by importing it to the Xcode Devices window. See Symbolicating Crash Reports for details.

So to put it simply, when you build your app with Xcode, the compiler also generates debug symbols. You should generally store the debug symbols in a dSYM file corresponding to the build that you submit for review.

If your app crashes during review, the App Store Review team member fetches and shares the crash log with you. Now the crash log contains machine (assembly language) instructions, and your can use Xcode to symbolicate the crash report. Doing this would convert the machine symbols into the name of identifies that you have in your code, which would help you with determining the section of code where the crash occurred.

Consider reading the attached technical note to understand how you can easily determine the part of code where your app crashed and be more effective with fix.

Nimesh Neema
  • 1,528
  • 2
  • 17
  • 44