【问题标题】:Xamarin.Forms iOS application crash on release after SplashScreenXamarin.Forms iOS 应用程序在 SplashScreen 后发布时崩溃
【发布时间】:2021-05-19 18:47:46
【问题描述】:

我现在有一个非常糟糕的问题:

行为:

应用程序在调试时工作,但在应用程序启动时退出发布。

调试信息不​​清楚,因为应用程序仅在发布模式下失败。

  1. Visual Studio 2019
  2. Xamarin 表单 4.8.0.1821
  3. ZxIng.Net.Mobile 2.4.1
  4. ZxIng.Net.Mobile.Forms 2.4.1
  5. Newtonsoft.Json 12.0.3
  6. Xamarin.Essentials 1.6.1
  7. SDK 14.4

模拟器日志文件:

Process:              myapp-ui.iOS [19566]

Path:                  /Users/USER/Library/Developer/CoreSimulator/Devices/2C19C42D-564E-42CB-B805-C9C49BB1E8FD/data/Containers/Bundle/Application/1F644647-27DB-48EF-96D6-75A169AE4E9D/myapp-ui.iOS.app/myapp-ui.iOS

Identifier:            myapp-ui.iOS

Version:               2.0.3 (1610484945)

Code Type:             X86-64 (Native)

Parent Process:        launchd_sim [17405]

Responsible:           SimulatorTrampoline [1267]

User ID:               501


Date/Time:             2021-02-16 12:29:44.629 -0600

OS Version:            macOS 11.2.1 (20D74)

Report Version:        12

Anonymous UUID:        E13D7872-1C1C-3306-5557-E45B4D68317D



Time Awake Since Boot: 350000 seconds


System Integrity Protection: enabled


Crashed Thread:        0  tid_307  Dispatch queue: com.apple.main-thread


Exception Type:        EXC_CRASH (SIGABRT)

Exception Codes:       0x0000000000000000, 0x0000000000000000

Exception Note:        EXC_CORPSE_NOTIFY


Application Specific Information:

abort() called

CoreSimulator 732.18.6 - Device: iPhone 12 Pro (2C19C42D-564E-42CB-B805-C9C49BB1E8FD) - Runtime: iOS 14.4 (18D46) - DeviceType: iPhone 12 Pro


Thread 0 Crashed:: tid_307  Dispatch queue: com.apple.main-thread

0   libsystem_kernel.dylib          0x00007fff61131462 __pthread_kill + 10

1   libsystem_pthread.dylib         0x00007fff6116a610 pthread_kill + 263

2   libsystem_c.dylib               0x00007fff200fac2e __abort + 139

3   libsystem_c.dylib               0x00007fff200faba3 abort + 135

4   io.myapp.myapp-easyapp              0x00000001045caa6f xamarin_unhandled_exception_handler + 31 (runtime.m:1151)

5   io.myapp.myapp-easyapp              0x000000010445f415 mono_invoke_unhandled_exception_hook + 133 (exception.c:1265)

6   io.myapp.myapp-easyapp              0x000000010439ce2a mono_handle_exception_internal + 6986 (mini-exceptions.c:2782)

7   io.myapp.myapp-easyapp              0x000000010439b2d9 mono_handle_exception + 25 (mini-exceptions.c:3107)

8   io.myapp.myapp-easyapp              0x000000010431b969 mono_amd64_throw_exception + 169 (exceptions-amd64.c:409)

9   ???                             0x0000000104f6a5b0 0 + 4378240432

10  io.myapp.myapp-easyapp              0x00000001045ca7ed xamarin_process_managed_exception + 301 (runtime.m:2356)

11  io.myapp.myapp-easyapp              0x00000001045d1482 xamarin_invoke_trampoline + 1250 (trampolines-invoke.m:686)

12  io.myapp.myapp-easyapp              0x00000001045d3642 xamarin_arch_trampoline + 82 (trampolines-x86_64.m:491)

13  io.myapp.myapp-easyapp              0x00000001045d400a xamarin_x86_64_common_trampoline + 118 (trampolines-x86_64-asm.s:51)

14  com.apple.Foundation            0x00007fff208592ba __NSThreadPerformPerform + 204

15  com.apple.CoreFoundation        0x00007fff2039038a __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17

16  com.apple.CoreFoundation        0x00007fff20390282 __CFRunLoopDoSource0 + 180

17  com.apple.CoreFoundation        0x00007fff2038f7c6 __CFRunLoopDoSources0 + 346

18  com.apple.CoreFoundation        0x00007fff20389f2f __CFRunLoopRun + 878

19  com.apple.CoreFoundation        0x00007fff203896d6 CFRunLoopRunSpecific + 567

20  com.apple.GraphicsServices      0x00007fff2c257db3 GSEventRunModal + 139

21  com.apple.UIKitCore             0x00007fff24696cf7 -[UIApplication _run] + 912

22  com.apple.UIKitCore             0x00007fff2469bba8 UIApplicationMain + 101

23  ???                             0x00000001065cb0a4 0 + 4401705124

24  ???                             0x00000001065caf13 0 + 4401704723

25  ???                             0x00000001065c7313 0 + 4401689363

26  io.myapp.myapp-easyapp              0x00000001043b36d1 mono_jit_runtime_invoke + 1569 (mini-runtime.c:3191)

27  io.myapp.myapp-easyapp              0x00000001044d9c08 do_runtime_invoke + 54 (object.c:3052) [inlined]

28  io.myapp.myapp-easyapp              0x00000001044d9c08 mono_runtime_invoke_checked + 136 (object.c:3220)

29  io.myapp.myapp-easyapp              0x00000001044dff75 do_exec_main_checked + 60 [inlined]

30  io.myapp.myapp-easyapp              0x00000001044dff75 mono_runtime_exec_main_checked + 117 (object.c:5284)

31  io.myapp.myapp-easyapp              0x00000001043124ec mono_jit_exec_internal + 14 (driver.c:1383) [inlined]

32  io.myapp.myapp-easyapp              0x00000001043124ec mono_jit_exec + 364 (driver.c:1328)

33  io.myapp.myapp-easyapp              0x00000001045d3196 xamarin_main + 1686 (monotouch-main.m:493)

34  io.myapp.myapp-easyapp              0x00000001042cc857 main + 55 (main.m:55)

35  libdyld.dylib                   0x00007fff2025a3e9 start + 1

【问题讨论】:

  • 在发布配置中启用调试并自己弄清楚发生了什么
  • 尝试没有任何链接行为
  • @Cheesebaron 抱歉,但我已经写过了,错误不会在调试模式下重现,仅发布,它与 Entitlement.plist 文件有关,经过几个小时的调查,但现在发生在仅购买 testflight 版本。
  • 我告诉你在发布模式配置中启用调试,或者更改你的调试配置以匹配发布,除了调试。

标签: ios xamarin crash


【解决方案1】:

幸运的是,问题是 Entitlement.plist,由于某种原因,当使用 Xamarin.Essentials 中的 SecureStorage 时,应用程序在商店发布 Testflight 时崩溃,所以我删除了 SecureStorage 并解决了问题。

感谢大家的回答。

【讨论】:

  • 是的,当您通过 iOS 模拟器的要领使用钥匙串访问时,您需要钥匙串权利。但是,您不应该在设备上使用此问题,因为它不是必需的。您可以随时检查发布、本地或 testflight 中的 logcat 输出。在那里你应该有一些线索。
  • 很高兴你已经解决了这个问题,记得在有时间的时候标记答案。
猜你喜欢
  • 1970-01-01
  • 2020-02-23
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-25
  • 2011-01-26
  • 2020-03-01
相关资源
最近更新 更多