내 테스트 비행 사용자 한 명이 앱을로드 할 때마다 충돌이 발생합니다. 테스트 장치 나 시뮬레이터에서이를 재현 할 수 없었습니다.충돌 로그의 자세한 내용 Xamarin.iOS
나는 충돌 보고서를 작성했으며이 파일을 완전히 상징화했다고 생각합니다. 다음은 blog입니다.
그러나 나는 내 코드로 다시 오류를 매핑 할 수 없습니다 :
는Date/Time: 2017-09-04 20:37:34.8879 +0100
Launch Time: 2017-09-04 20:36:50.5258 +0100
OS Version: iPhone OS 10.2.1 (14D27)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000
Triggered by Thread: 0
Thread 0 name:
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x0000000185433014 __pthread_kill + 8
1 libsystem_pthread.dylib 0x00000001854fb450 pthread_kill + 112 (pthread.c:1366)
2 libsystem_c.dylib 0x00000001853a7400 abort + 140 (abort.c:91)
3 planit 0x00000001da8 mono_handle_native_crash (mini-exceptions.c:2548)
4 libsystem_platform.dylib 0x00000001854f5348 _sigtramp + 52 (sigtramp.c:115)
5 libsystem_pthread.dylib 0x00000001854fb450 pthread_kill + 112 (pthread.c:1366)
6 libsystem_c.dylib 0x00000001853a7400 abort + 140 (abort.c:91)
7 planit 0x0000000101333414 xamarin_printf (runtime.m:2218)
8 planit 0x0000000101271a9c mono_invoke_unhandled_exception_hook (exception.c:1084)
9 planit 0x00000001e4 mono_handle_exception_internal (mini-exceptions.c:1886)
10 planit 0x00000001a84 mono_handle_exception (mini-exceptions.c:2117)
11 planit 0x000000010122d458 mono_arm_throw_exception (exceptions-arm64.c:411)
12 planit 0x000000010041c278 throw_exception + 168
13 planit 0x000000010032289c System_Runtime_ExceptionServices_ExceptionDispatchInfo_Throw + 44
14 planit 0x00000001003252e4 System_Runtime_CompilerServices_AsyncMethodBuilderCore__c__ThrowAsyncb__6_0_object + 84
15 planit 0x0000000100c2f808 UIKit_UIKitSynchronizationContext__Postc__AnonStorey0__m__0 (UIKitSynchronizationContext.cs:24)
16 planit 0x0000000100c1be34 Foundation_NSAsyncActionDispatcher_Apply (NSAction.cs:163)
17 planit 0x00000001003ecc24 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 244
18 planit 0x0000000101243010 mono_jit_runtime_invoke (mini-runtime.c:2526)
19 planit 0x00000001012a7df0 do_runtime_invoke (object.c:2829)
20 planit 0x00000001012a7d50 mono_runtime_invoke (object.c:2983)
21 planit 0x00000001000a8204 native_to_managed_trampoline_1(objc_object*, objc_selector*, _MonoMethod**, unsigned int) (registrar.m:25)
22 planit 0x00000001000a853c -[__MonoMac_NSAsyncActionDispatcher xamarinApplySelector] (registrar.m:4355)
23 Foundation 0x0000000186f79048 __NSThreadPerformPerform + 340 (NSThread.m:1247)
24 CoreFoundation 0x0000000186412b5c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24 (CFRunLoop.c:1943)
25 CoreFoundation 0x00000001864124a4 __CFRunLoopDoSources0 + 524 (CFRunLoop.c:1989)
26 CoreFoundation 0x00000001864100a4 __CFRunLoopRun + 804 (CFRunLoop.c:2821)
27 CoreFoundation 0x000000018633e2b8 CFRunLoopRunSpecific + 444 (CFRunLoop.c:3113)
28 GraphicsServices 0x0000000187df2198 GSEventRunModal + 180 (GSEvent.c:2245)
29 UIKit 0x000000018c3857fc -[UIApplication _run] + 684 (UIApplication.m:2650)
30 UIKit 0x000000018c380534 UIApplicationMain + 208 (UIApplication.m:4092)
31 planit 0x0000000100c6fc10 wrapper_managed_to_native_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr (/<unknown>:1)
32 planit 0x0000000100c2de8c UIKit_UIApplication_Main_string___intptr_intptr (UIApplication.cs:79)
33 planit 0x0000000100c2de4c UIKit_UIApplication_Main_string___string_string (UIApplication.cs:63)
34 planit 0x00000001000cbef4 planit_Application_Main_string__ (Main.cs:13)
35 planit 0x00000001003ecc24 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 244
36 planit 0x0000000101243010 mono_jit_runtime_invoke (mini-runtime.c:2526)
37 planit 0x00000001012a7df0 do_runtime_invoke (object.c:2829)
38 planit 0x00000001012aa7bc do_exec_main_checked (object.c:4624)
39 planit 0x000000010122cc68 mono_jit_exec (driver.g.c:1040)
40 planit 0x0000000101337168 xamarin_main (monotouch-main.m:482)
41 planit 0x00000001000c75bc main (main.m:79)
42 libdyld.dylib 0x00000001853215b8 start + 4
는 사람이 올바른 방향으로 날 포인트?
로그는 예외를 던지고있는 어딘가에서 'Task.Run'과 같은 것을 말하는 것입니다. 이론적으로 "비 고유"스택 추적 정보를 얻으려면 응용 프로그램의 일부로 적절한 로그 레코더를 구현해야합니다. – Digitalsa1nt
감사합니다. Debug.WriteLine()을 사용하여 저장된 메시지가 충돌 로그에 표시됩니까? – groveale
네이티브 스택 추적에 없으면 이상적으로 사과의 SpecialFolder.MyDocuments 경로에 파일을 만들고 싶습니다. 실제로 관리되는 스택 추적을 파일에 기록합니다. 테스트/베타 테스트 중에 정확하고 유용한 오류 정보를 얻는 가장 좋은 방법입니다. 유용하다고 생각되면 재사용을위한 로깅 클래스를 추가 할 수 있습니다. – Digitalsa1nt