无法理解Xamarin.Forms应用程序的符号崩溃日志的输出

时间:2017-02-03 16:01:00

标签: xamarin xamarin.ios symbolicatecrash

我正在尝试将Xamarin.Forms应用程序发送到Apple App Store。 我是用Visual Studio,Ad-Hoc和LLVM编译器构建的。将mac上的输出保存到另一个文件夹(.app,.ipa,.dSYM)。

现在,Apple拒绝了它,因为IPv6与应用程序存在问题,并且他们正在为此问题附加崩溃日志。当我尝试表示崩溃日志时,我在输出中没有任何与我的应用程序相关的东西,只有我可以涉及的东西,是Main类,但它告诉我一个不存在的行号。

以下是符号输出的一部分:http://pastebin.com/PjhCuTgV

我是否缺少某些东西,或者是从Xamarin调试iOS代码的更好方法?

-

编辑:我设法获得了更好的崩溃日志:

Last Exception Backtrace:
0   CoreFoundation                       0x193fb51b8 __exceptionPreprocess + 124
1   libobjc.A.dylib                      0x1929ec55c objc_exception_throw + 52
2   UIKit                                0x19a618490 +[UIStoryboard storyboardWithName:bundle:] + 780
3   UIKit                                0x19a0eca70 -[UIApplication _loadMainStoryboardFileNamed:bundle:] + 92
4   UIKit                                0x199ed5320 -[UIApplication _loadMainInterfaceFile] + 260
5   UIKit                                0x19a0eb6e8 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1364
6   UIKit                                0x19a100104 __84-[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke.3139 + 44
7   UIKit                                0x19a0e87ec -[UIApplication workspaceDidEndTransaction:] + 164
8   FrontBoardServices                   0x195b8b92c __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 32
9   FrontBoardServices                   0x195b8b798 -[FBSSerialQueue _performNext] + 172
10  FrontBoardServices                   0x195b8bb40 -[FBSSerialQueue _performNextFromRunLoopSource] + 52
11  CoreFoundation                       0x193f62b5c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 20
12  CoreFoundation                       0x193f624a4 __CFRunLoopDoSources0 + 520
13  CoreFoundation                       0x193f600a4 __CFRunLoopRun + 800
14  CoreFoundation                       0x193e8e2b8 CFRunLoopRunSpecific + 440
15  UIKit                                0x199ece7b0 -[UIApplication _run] + 604
16  UIKit                                0x199ec9534 UIApplicationMain + 204
17  MyApp                                0x100bb22e4 wrapper_managed_to_native_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr (<unknown>:1)
18  MyApp                                0x100b20c4c UIKit_UIApplication_Main_string___intptr_intptr (UIApplication.cs:79)
19  MyApp                                0x100b20c0c UIKit_UIApplication_Main_string___string_string (UIApplication.cs:63)
20  MyApp                                0x1001fb444 MyApp_iOS_Application_Main_string__ (<unknown>:1)
21  MyApp                                0x10047de54 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 240
22  MyApp                                0x100116434 mono_jit_runtime_invoke (mini-runtime.c:2551)
23  MyApp                                0x10017a658 do_runtime_invoke (object.c:2820)
24  MyApp                                0x10017d240 do_exec_main_checked (object.c:2978)
25  MyApp                                0x100100198 mono_jit_exec (driver.g.c:1049)
26  MyApp                                0x1001fadd0 xamarin_main (monotouch-main.m:485)
27  MyApp                                0x1014232dc main (main.arm64.m:159)
28  libdyld.dylib                        0x192e715b8 start + 0

1 个答案:

答案 0 :(得分:0)

我的问题是该应用花了太多时间开始。在这种情况下,崩溃日志应具有以下异常代码:0x8badf00d。根据Apple文档https://developer.apple.com/library/content/technotes/tn2151/_index.html

The exception code 0x8badf00d indicates that an application has been terminated by iOS because a watchdog timeout occurred. The application took too long to launch, terminate, or respond to system events. 

在我的例子中,日志的异常代码为0x0000000000000000,它只是表示未处理的obj-c代码异常。 Apple没有提供帮助来找到这个问题,因为在我们的设备上,它在TestFlight上正常运行。大多数我可以让他们帮助我理解他们的环境:“我按了图标然后就崩溃了。”

我为修复我的应用程序所做的是尽可能减少初始加载时间,导航到“加载视图”,其中只包含一个ActivityMonitor。当应用程序完全初始化后,我会导航到正确的视图。