【发布时间】:2017-02-14 05:53:34
【问题描述】:
我正在尝试将 Xamarin.Forms 应用程序发送到 Apple App Store。 我使用 LLVM 编译器从 Visual Studio、Ad-Hoc 构建它。将 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
【问题讨论】:
-
我看到许多来自 Apple 的拒绝报告指出 IPv6 兼容性问题实际上与 IPv6 无关。只是一个抬头。在一种情况下,由于缺少权限描述,该应用程序在启动时崩溃,但 Apple 拒绝说明该应用程序与 IPv6 不兼容。此外,该崩溃日志根本没有符号化。有关如何符号化崩溃报告,请参阅此帖子:jmillerdev.net/symbolicating-ios-crash-files-xamarin-ios
-
我看过这篇文章,并且我已经按照这篇博文中显示的每一步。我见过其他方法来表示崩溃日志,但再也没有得到任何细节......另外,我检查了权限描述,我只使用声明的那些。
-
我有经理使用 HockeyApp 从崩溃日志中获得更好的输出。不知道为什么,我验证了所有 UUID,来自崩溃日志、.app、.dSYM,来自 mdfind 或 dwarfdump。请参阅原始帖子以获取更新的日志。谢谢
-
尝试加载情节提要时似乎抛出了 Obj-C 异常。您不应该有来自 X.Forms 应用程序的 Main.storyboard,因此请查看 iOS 项目的 Info.plist 并确保您没有设置主界面文件。但这只是基于我所看到的猜测。也可能是您的 Launch.storyboard 中的问题。
-
感谢您的帮助,我确实将主故事板值设置为 LaunchScreen。在没有这些值的情况下尝试过,仍然没有用。发现了别的东西,审核通过了,会写答案的。
标签: xamarin xamarin.ios symbolicatecrash