monotouch - 无法复制苹果iOS应用审查崩溃

  显示原文与译文双语对照的内容

我最近将我的iOS应用提交给苹果。 它是用 C# Xamarin 。Monotouch和Monogame编写的。 我使用 Xamarin IDE进行开发。 如果你想访问In-App-Purchase商店,但在iphone4上没有崩溃,你会发现它不会崩溃,但这表明它无法进入苹果的服务器,而在iphone4中,它却无法获取存储项目。 我的大部分商店检索代码是来自xamarin的指南,在这里找到了

问题是我无法复制那些崩溃。 商店开得很好,我对它进行了大量测试。 我在所有模拟器上测试过,并且调试&发布配置中的许多实际设备都有( iPhone 4,iPhone 5,iPhone 5 s,iPad生成) 。 因为许多设备都是从我朋友那里借来的,因这里我不想在iTunes上进行测试。 所以希望发布版本和临时版本在找到团队的评审 Bug 方面是等价的。

至于苹果给我的崩溃日志,他们没有帮助我,因为大多数线路都没有使用我提交的symbolicated 。 日志中有很多'___lldb_unnamed_function'行。 我只知道在试图找回商店的时候。 所以我 stuck,不确定下一步该怎么办。 建议建议。

下面是长崩溃日志的最后一部分。


Incident Identifier: 24777CEA-21FF-434B-A658-BFB4BC89F7B2
CrashReporter Key: e981dd69858f1d35ba231cd2e288f3d33625919f
Hardware Model: xxx
Version: 1 (1)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2014-01-09 13:30:21.579 -0800
OS Version: iOS 7.0.4 (11B554a)
Report Version: 104

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0

Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x387e41fc __pthread_kill + 8
1 libsystem_pthread.dylib 0x3884ba4f pthread_kill + 55
2 libsystem_c.dylib 0x38795029 abort + 73
3 MyGame 0x00d8036d mono_handle_native_sigsegv (mini-exceptions.c:2413)
4 MyBeGame 0x00d855b7 sigabrt_signal_handler (mini-posix.c:206)
5 libsystem_platform.dylib 0x38846721 _sigtramp + 41
6 libsystem_pthread.dylib 0x3884ba4f pthread_kill + 55
7 libsystem_c.dylib 0x38795029 abort + 73
8 MyBeGame 0x00e30744 monotouch_unhandled_exception_handler (monotouch-glue.m:1436)
9 MyBeGame 0x00d8072d mono_invoke_unhandled_exception_hook (mini-exceptions.c:2749)
10 MyBeGame 0x00d8d7ab mono_thread_abort_dummy (mini.c:2768)
11 MyBeGame 0x00d7ff35 mono_handle_exception_internal (mini-exceptions.c:1710)
12 MyBeGame 0x00d7f6b7 mono_handle_exception (mini-exceptions.c:2003)
13 MyBeGame 0x00d791b5 mono_arm_throw_exception (exceptions-arm.c:161)
14 MyBeGame 0x0023f7d4 ___lldb_unnamed_function12968$$MyBeGame + 64
15 MyBeGame 0x002da1d0 ___lldb_unnamed_function20307$$MyBeGame + 92
16 MyBeGame 0x00293960 ___lldb_unnamed_function17583$$MyBeGame + 196
17 MyBeGame 0x00212418 ___lldb_unnamed_function12101$$MyBeGame + 168
18 MyBeGame 0x0029205c ___lldb_unnamed_function17574$$MyBeGame + 92
19 MyBeGame 0x00295c58 ___lldb_unnamed_function17610$$MyBeGame + 32
20 MyBeGame 0x00083570 ___lldb_unnamed_function2892$$MyBeGame + 860
21 MyBeGame 0x000954f4 ___lldb_unnamed_function3194$$MyBeGame + 1516
22 MyBeGame 0x00093610 ___lldb_unnamed_function3176$$MyBeGame + 40
23 MyBeGame 0x0006246c MyBeGame.HintStoreController.HintStoreControl/StateRetrieving:<Activate>m__F + 624
24 MyBeGame 0x0045d39c ___lldb_unnamed_function33945$$MyBeGame + 48
25 MyBeGame 0x0020c10c ___lldb_unnamed_function11957$$MyBeGame + 196
26 MyBeGame 0x00d8ce4f mono_jit_runtime_invoke (mini.c:6504)
27 MyBeGame 0x00dd482b mono_runtime_invoke (object.c:2827)
28 MyBeGame 0x00d5117b native_to_managed_trampoline_MonoTouch_Foundation_InternalNSNotificationHandler_Post (registrar.m:28)
29 CoreFoundation 0x2da4fe6f __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 11
30 CoreFoundation 0x2d9c3aad _CFXNotificationPost + 1717
31 Foundation 0x2e3a9ec1 -[NSNotificationCenter postNotificationName:object:userInfo:] + 69

时间: 作者:

你可以通过比较项目的选项来确定来自两个不同配置( 说发布和即席发布)的构建是否相同。 特别要看 Build/CompilerBuild/iOS Build 页面,确保所有选项都是相同的。

关于崩溃报告,不幸的是我们有一个 Bug 在 Xamarin.iOS 7.0.4中使用dSYM生成,所以托管框架将不会正确地显示错误消息。 但是我可以说,应用程序崩溃了,因为存在未处理的托管异常。

如果你不能自己重现这个问题,我建议你用 Xamarin.iOS 7.0.6 ( 目前在beta频道) 重新构建你的应用,然后重新提交到苹果。 应用程序可能仍然崩溃,但是你应该获得更好的崩溃报告,至少会告诉你托管异常发生的位置。

...