Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无用的Swift iOS崩溃报告_Ios_Iphone_Swift - Fatal编程技术网

无用的Swift iOS崩溃报告

无用的Swift iOS崩溃报告,ios,iphone,swift,Ios,Iphone,Swift,我正在使用Swift开发一个iOS应用程序。该应用程序以苹果地图为中心。我是iOS开发新手。我正在使用测试版分发应用程序,并获取崩溃报告。然而,我收到的许多撞车报告并没有多大帮助。有时,崩溃报告只指定崩溃发生的方法,但没有给我任何关于崩溃原因的线索。 我试图了解这是否是标准的,或者我是否应该切换到另一个崩溃报告服务 以下是此类碰撞报告的示例: Crashed: com.apple.main-thread EXC_BREAKPOINT UNKNOWN at 0x00000001000a68f8

我正在使用Swift开发一个iOS应用程序。该应用程序以苹果地图为中心。我是iOS开发新手。我正在使用测试版分发应用程序,并获取崩溃报告。然而,我收到的许多撞车报告并没有多大帮助。有时,崩溃报告只指定崩溃发生的方法,但没有给我任何关于崩溃原因的线索。 我试图了解这是否是标准的,或者我是否应该切换到另一个崩溃报告服务

以下是此类碰撞报告的示例:

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

这是编译代码的崩溃报告。您看到的几乎是堆栈跟踪。我不确定您可能熟悉哪些语言,但我假设类似python的东西,它是一种解释语言,您的跟踪会给您行号等


如果斯威夫特这样做,也意味着人们将更容易对编译后的代码进行反向工程

你为什么不发布导致你的应用程序崩溃的代码呢?忘了这一点:)虽然我的问题不是要为这个特定的错误获得帮助,但更多的是关于为什么崩溃报告在我的经验中没有太大的帮助(意思是不报告崩溃发生的行号或原因),这次崩溃最常见的原因是你有一个强制施放(
foo as SomeClass
),但是
foo
实际上不是那个类。这是正常的,但斯威夫特还不是很擅长。(在Swift 1.2中更好,但你还不能将其发送到应用商店。)有更新吗?我有2%的用户也有同样的问题,我无法复制错误,这让我很恼火!好吧因此,我理解为什么我不会得到行号,例如,但它甚至不报告导致撞车的原因是正常的吗?(比如说,如果是这样的话,我试着用nil值强制展开一个可选项)在崩溃报告中,没有。在这一点上,它是编译代码。您并不是在解包一个可选文件,而是在编译时进行优化。如果您想要描述性的调试信息,您需要在调试模式下运行它。也就是说,根据我的理解,您实际上可以通过符号化崩溃日志获得导致崩溃的行号之类的信息。事实上,在我收到的一些车祸报告中,我确实看到了行号。
func getAnnotations(lat: Double, long: Double){ // ignore the lat long arguments

    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)
            })
        } 

    })
}