我正在尝试将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
答案 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。当应用程序完全初始化后,我会导航到正确的视图。