Reading Crash Report from AppStore Review

Discussion in 'iOS Programming' started by MacMan988, Mar 27, 2014.

  1. MacMan988 macrumors 6502a

    Joined:
    Jul 7, 2012
    #1
    Hi, My app has been rejected due to a crash on the iPad. I hope following part is the relevant section related to the crash.

    Code:
    {"bundleID":"com.myapp.MyApp","app_name":"MyApp","bug_type":"109","name":"MyApp","os_version":"iPhone OS 7.1 (11D167)","version":"1.0 (1.0)"}
    Incident Identifier: 95FCBB03-C2C2-40AD-9121-DDBA05842BD0
    CrashReporter Key:   03e6d04a9f8fcf7989c751d0befe3b50ff6720c8
    Hardware Model:      xxx
    Process:             MyApp [3613]
    Path:                /var/mobile/Applications/27CA96E5-037C-4C2F-93D7-3B89BEEE8524/MyApp.app/MyApp
    Identifier:          com.myapp.MyApp
    Version:             1.0 (1.0)
    Code Type:           ARM-64 (Native)
    Parent Process:      launchd [1]
    
    Date/Time:           2014-03-26 15:56:00.194 -0700
    OS Version:          iOS 7.1 (11D167)
    Report Version:      104
    
    Exception Type:  EXC_CRASH (SIGABRT)
    Exception Codes: 0x0000000000000000, 0x0000000000000000
    Triggered by Thread:  0
    
    Last Exception Backtrace:
    0   CoreFoundation                	0x18d722950 __exceptionPreprocess + 132
    1   libobjc.A.dylib               	0x19a0fc1fc objc_exception_throw + 60
    2   MyApp                 			0x1000550e8 -[PFRemoveOperation applyToValue:forKey:ofObject:] (PFFieldOperation.m:451)
    3   MyApp                 			0x10002fe20 -[PFObject(Private) applyOperations:toDictionary:] (PFObject.m:964)
    4   MyApp                 			0x10002fff8 -[PFObject(Private) rebuildEstimatedData] (PFObject.m:979)
    5   MyApp                 			0x1000307b8 -[PFObject(Private) mergeAfterSave:] (PFObject.m:1054)
    6   MyApp                 			0x10003101c -[PFObject(Private) handleSaveResult:error:] (PFObject.m:1133)
    7   MyApp                 			0x10003169c __31-[PFObject(Private) saveAsync:]_block_invoke418 (PFObject.m:1203)
    8   MyApp                 			0x1000778dc __23-[PFTask continueWith:]_block_invoke_2 (PFTask.m:234)
    9   libdispatch.dylib             	0x19a6d4014 _dispatch_call_block_and_release + 24
    10  libdispatch.dylib             	0x19a6d3fd4 _dispatch_client_callout + 16
    11  libdispatch.dylib             	0x19a6db2b8 _dispatch_root_queue_drain + 556
    12  libdispatch.dylib             	0x19a6db4fc _dispatch_worker_thread2 + 76
    13  libsystem_pthread.dylib       	0x19a8696bc _pthread_wqthread + 356
    14  libsystem_pthread.dylib       	0x19a86954c start_wqthread + 4
    
    Thread 0 name:  Dispatch queue: com.apple.main-thread
    Thread 0 Crashed:
    0   libsystem_kernel.dylib        	0x000000019a7ea58c __pthread_kill + 8
    1   libsystem_c.dylib             	0x000000019a77e804 abort + 108
    2   libc++abi.dylib               	0x00000001999a4990 abort_message + 84
    3   libc++abi.dylib               	0x00000001999c1c28 default_terminate_handler() + 296
    4   libobjc.A.dylib               	0x000000019a0fc4d0 _objc_terminate() + 124
    5   libc++abi.dylib               	0x00000001999bf164 std::__terminate(void (*)()) + 12
    6   libc++abi.dylib               	0x00000001999bed38 __cxa_rethrow + 140
    7   libobjc.A.dylib               	0x000000019a0fc3a4 objc_exception_rethrow + 40
    8   MyApp                 			0x0000000100078280 __40-[PFTask thenCallBackOnMainThreadAsync:]_block_invoke_2 (PFTask.m:329)
    9   libdispatch.dylib             	0x000000019a6d4010 _dispatch_call_block_and_release + 20
    10  libdispatch.dylib             	0x000000019a6d3fd0 _dispatch_client_callout + 12
    11  libdispatch.dylib             	0x000000019a6d71d8 _dispatch_main_queue_callback_4CF + 332
    12  CoreFoundation                	0x000000018d6e2628 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
    13  CoreFoundation                	0x000000018d6e0968 __CFRunLoopRun + 1448
    14  CoreFoundation                	0x000000018d6216cc CFRunLoopRunSpecific + 448
    15  GraphicsServices              	0x00000001932bdc08 GSEventRunModal + 164
    16  UIKit                         	0x0000000190752fd8 UIApplicationMain + 1152
    17  MyApp                 			0x00000001000233ec main (main.m:10)
    18  libdyld.dylib                 	0x000000019a6efa9c start + 0

    I've read the Apple's documentation regarding analyzing crash reports and I noticed that
    Code:
    Exception Codes: 0x0000000000000000, 0x0000000000000000
    does not falls into any of the example categories they have mentioned. Could this be a crash report generated to the app being force quit by the user?

    Any tips on analyzing the crash report would be highly appreciated!!!

    Thanks in advance!
     
  2. dantastic macrumors 6502

    dantastic

    Joined:
    Jan 21, 2011
    #2
    Here is where the fireworks are
    Code:
    __40-[PFTask thenCallBackOnMainThreadAsync:]_block_invoke_2 (PFTask.m:329)
    
    Directly after that you are hitting
    Code:
    objc_exception_rethrow + 40
    So we know that went pear shaped anyway. This is where the app crashed.

    Note though that this is a rethrow. So this piece of code might just work fine but the app was in a state that caused this to crash. So check the first exception.

    Code:
    [PFRemoveOperation applyToValue:forKey:ofObject:] (PFFieldOperation.m:451)
    This is causing your first exception.

    Just looking at the method names etc. it looks like you are updating/deleting a data model. Perhaps Core Data?
    Core data is not thread safe out of the box as such.
    The other thing is make sure you are not trying to remove the same object twice.

    I'd start by ensuring that the threading is right around these methods.

    Next thing is make sure you test on a arm64 device as well. If your threading isn't the problem I recon this could well be another contender.
     
  3. waterskier2007 macrumors 68000

    waterskier2007

    Joined:
    Jun 19, 2007
    Location:
    White Lake, MI
    #3
    PFObject is something from the Parse framework. It looks like it is a remove operation. Can you share any code that might center around removing an object from Parse?
     

Share This Page