I am developing an iOS application using Swift. The application is centered around Apple Maps. I am new to iOS development. I use Fabric.io to beta distribute the application and get crash reports. However, many of the crash reports I receive are not very useful. Sometimes in crash reports, only the way in which the crash occurred is indicated, but it does not give me clues as to why it crashed. I'm trying to figure out if this is standard, or should I switch to another crash reporting service.
Here is an example of such crash reports:
Crashed: com.apple.main-thread
EXC_BREAKPOINT UNKNOWN at 0x00000001000a68f8
Thread : Crashed: com.apple.main-thread
0 <APP NAME> 0x00000001000a68f8 <APP NAME>.MapViewController.(getMapAnnotations (<APP NAME>.MapViewController) -> (Swift.Double, long : Swift.Double) -> ()).(closure #1).(closure #1) (MapViewController.swift)
1 <APP NAME> 0x00000001000a6570 <APP NAME>.MapViewController.(getMapAnnotations (<APP NAME>.MapViewController) -> (Swift.Double, long : Swift.Double) -> ()).(closure #1).(closure #1) (MapViewController.swift)
2 libdispatch.dylib 0x0000000192ed13ac _dispatch_call_block_and_release + 24
3 libdispatch.dylib 0x0000000192ed136c _dispatch_client_callout + 16
4 libdispatch.dylib 0x0000000192ed5980 _dispatch_main_queue_callback_4CF + 932
5 CoreFoundation 0x00000001820f9fa4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
6 CoreFoundation 0x00000001820f804c __CFRunLoopRun + 1492
7 CoreFoundation 0x00000001820250a4 CFRunLoopRunSpecific + 396
8 GraphicsServices 0x000000018b1bf5a4 GSEventRunModal + 168
9 UIKit 0x0000000186956aa4 UIApplicationMain + 1488
10 <APP NAME> 0x00000001000f1914 main (AppDelegate.swift:16)
11 libdyld.dylib 0x0000000192efaa08 start + 4
Here is a method for determining the method in which the error occurs:
func getAnnotations(lat: Double, long: Double){
var apiWrapper = apiWrapper()
apiWrapper.search(completionHandler: {(error: NSError?, mediaElements: [MediaElement]?) in
if error == nil {
dispatch_async(dispatch_get_main_queue(), {
self.myMapView!.removeAnnotations(self.myMapView!.annotations)
self.mediaAnnotations = []
for m in mediaElements! {
var annotation = CustomAnnotation(lat: m.lat,long: m.long, mediaTuple: (media.url, media.type))
self.mediaAnnotations.append(annotation)
}
self.reorganizeAnnotations(self.mediaAnnotations)
})
}
})
}
source
share