我现在有点想法了。 我已经向AppStore提交了一个iPhone应用程序5或6次,直到今天,除了一次之外它总是被拒绝。我仍然想知道为什么它曾经被接受,因为我几乎没有改变以前版本的东西(被拒绝)。
顺便说一句:我在不同的iPhone 5上测试了应用程序,它从未崩溃......无论如何,我在理解崩溃报告方面遇到了问题:
Last Exception Backtrace:
0 CoreFoundation 0x320483e2 0x31f86000 + 795618
1 libobjc.A.dylib 0x39d4395e ParkingDeckDetailViewController.m:137
2 CoreFoundation 0x32048302 0x31f86000 + 795394
3 QuartzCore 0x33c05106 StartupViewController.m:906
4 QuartzCore 0x33c0502e StartupViewController.m:904
5 UIKit 0x33ebb944 0x33e54000 + 424260
6 Passau 0x00196c88 -[AGSGPS setupFrameAndBounds:] (AGSGPS.m:678)
7 Passau 0x00198056 -[AGSGPS consumeNewLocation:] (AGSGPS.m:928)
8 Passau 0x00198ffa -[AGSGPS didApproximateProjectionWithGeometry:] (AGSGPS.m:1085)
9 Passau 0x00197f16 -[AGSGPS locationManager:didUpdateToLocation:fromLocation:] (AGSGPS.m:920)
10 CoreLocation 0x324f00d6 CityTourDetailViewController.m:234
11 CoreLocation 0x324e7f38 TabBarViewController.m:90
12 CoreFoundation 0x3201d920 0x31f86000 + 620832
13 CoreFoundation 0x3201cff4 0x31f86000 + 618484
14 CoreFoundation 0x3201c24e 0x31f86000 + 614990
15 CoreFoundation 0x31f8f238 MapLayerCell.m:50
16 CoreFoundation 0x31f8f0c4 JSONDataDownload.m:138
17 GraphicsServices 0x35b6e336 MapViewController.m:265
18 UIKit 0x33eab2b4 0x33e54000 + 357044
19 Passau 0x000e73aa main (main.m:16)
20 libdyld.dylib 0x3a170b1c StartupViewController.m:779
和崩溃的线程:
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3a237350 __pthread_kill + 8
1 libsystem_c.dylib 0x3a1adfb2 pthread_kill + 54
2 libsystem_c.dylib 0x3a1ea366 abort + 90
3 libc++abi.dylib 0x39792dda abort_message + 70
4 libc++abi.dylib 0x39790094 default_terminate() + 20
5 libobjc.A.dylib 0x39d43a58 _objc_terminate() + 144
6 libc++abi.dylib 0x39790118 safe_handler_caller(void (*)()) + 76
7 libc++abi.dylib 0x397901b0 std::terminate() + 16
8 libc++abi.dylib 0x39791626 __cxa_rethrow + 90
9 libobjc.A.dylib 0x39d439b0 objc_exception_rethrow + 8
10 CoreFoundation 0x31f8f29c CFRunLoopRunSpecific + 452
11 CoreFoundation 0x31f8f0c4 CFRunLoopRunInMode + 100
12 GraphicsServices 0x35b6e336 GSEventRunModal + 70
13 UIKit 0x33eab2b4 UIApplicationMain + 1116
14 Passau 0x000fc3aa main (main.m:16)
15 libdyld.dylib 0x3a170b1c start + 0
我正在使用ArcGIS框架来显示地图。
那么,你能否给我一个提示我应该锁定错误的提示? 当我看到崩溃的线程报告时,我觉得应用程序在启动后就崩溃了,是吗?
谢谢!
编辑:用大部分符号化的版本替换“Last Exception Backtrace”。
+
Thread 3 name: Dispatch queue: com.apple.CoreLocation.ConnectionClient.0x2007a300.events
Thread 3:
0 libsystem_kernel.dylib 0x3a226e98 semaphore_timedwait_trap + 8
1 libdispatch.dylib 0x3a161c16 _dispatch_semaphore_wait_slow + 118
2 CoreLocation 0x324e7ea4 CLClientInvokeCallback(__CLClient*, CLClientEvent, objc_object*) + 340
3 CoreLocation 0x324eb4e2 ___CLClientCreateConnection_block_invoke_0 + 346
4 CoreLocation 0x32521f20 __setEventHandler_block_invoke_0 + 344
5 libxpc.dylib 0x3a27c882 _xpc_connection_mach_event + 718
6 libdispatch.dylib 0x3a163688 _dispatch_mach_msg_invoke + 120
7 libdispatch.dylib 0x3a160afa _dispatch_queue_drain + 78
8 libdispatch.dylib 0x3a16392e _dispatch_mach_invoke + 166
9 libdispatch.dylib 0x3a160afa _dispatch_queue_drain + 78
10 libdispatch.dylib 0x3a15e678 _dispatch_queue_invoke + 40
11 libdispatch.dylib 0x3a160afa _dispatch_queue_drain + 78
12 libdispatch.dylib 0x3a15e678 _dispatch_queue_invoke + 40
13 libdispatch.dylib 0x3a161610 _dispatch_root_queue_drain + 208
14 libdispatch.dylib 0x3a1617d4 _dispatch_worker_thread2 + 88
15 libsystem_c.dylib 0x3a1857ee _pthread_wqthread + 358
16 libsystem_c.dylib 0x3a185680 start_wqthread + 4
答案 0 :(得分:2)
你的“Last Exception Stacktrace”来自第3个主题,它不是主线程。但是,它被抛入UIViewController
的方法中。这意味着您正在操作除了主要线程之外的另一个线程的接口,这是不正确的并且会导致许多不同严重性的问题。
因此,您需要确保仅将消息发送到主线程上的视图控制器。由于CLLocationManagerDelegate
回调发生在启动管理器的线程上,您应该执行以下操作之一:
仅在主线程上启动CLLocationManager
。
在处理位置更新的代码中,无论是在locationManager:didUpdateToLocation:fromLocation:
内还是在堆栈的下方,您都应该对主队列执行dispatch_async,并传递一个块来执行所有消息传递以查看控制器。