【问题标题】:Xamarin iOS app crash on startupXamarin iOS 应用程序在启动时崩溃
【发布时间】:2016-04-13 07:57:22
【问题描述】:

向 iTunes Connect 提交应用程序后,它被拒绝,说明应用程序在启动时崩溃。在模拟器中运行应用程序时不会发生此行为。此外,该应用程序在 Android 上运行良好,Google Play 并没有拒绝它。所以我主要担心的是为什么会这样?

该应用程序是 Xamarin Forms 2.0(最新版本)iOS 应用程序,使用 XCode 7.3 运行并为 iOS 9.3 构建。在 Apple 的崩溃日志中,我看到他们在 iOS 9.3.1 上对其进行了测试。

有没有其他人经历过这个? Apple 的日志显示线程 0(主线程)已崩溃。

【问题讨论】:

  • 我建议您在设备上尝试,它通常与模拟器的行为不同(对于 iOS,它的模拟器,而对于 android,它是模拟器)。一旦你在设备上尝试过,你肯定会崩溃。然后我们就可以开始帮忙了。至少如果没有堆栈跟踪,我们将无能为力。此外,如果您在调试中没有任何结果,请尝试发布,如果不成功,请尝试从 .ipa 安装。如果您没有从那里遇到任何崩溃,那么您将需要发挥创造力。
  • 你好 Zil,我想在我们说话时象征崩溃日志。不过这需要一点时间。任何可能的原因或建议?我有 2 3 个理论,但需要一段时间来测试它们。我相信该应用程序在多次查询语言的主线程上做了太多工作,从而导致看门狗中止。还不确定。
  • 可以分享崩溃日志吗?苹果通常会在这些场景中提供崩溃日志来调试问题
  • 几个小时后,当我到达我的电脑时,我将编辑 Prashant 问题并包含崩溃日志,希望是符号化的。
  • 好的,在分析了崩溃日志之后,我设法在模拟器中重现了崩溃。似乎链接器影响的功能比我想象的要多得多。使用 Link All 选项,崩溃会在模拟器中重现。使用 Link SDK 程序集,崩溃似乎不会自行重现。我们将在另一次审查后看到!

标签: c# xamarin xamarin.ios


【解决方案1】:

我也遇到了与 ios 应用程序类似的问题... 在我的情况下,应用程序仅在设备的 32 位上崩溃。 以下是为解决此问题所做的一些更改:

  1. 部署目标已更新至 9.0。

  2. 链接器选项已更新以支持所有 iOS 架构(ARMv7 + ARMv7s + ARM64)。注意:- 以前它仅针对 (ARMv7 + ARM64) 但此选项会增加 ipa 大小。

  3. NSPhotoLibraryUsageDescription 和 NSCameraUsageDescription 隐私设置已添加到 info.plist 文件中。

  4. xamarin 版本的最新稳定版本已更新 (4.2)。

还要确保插件初始化在 appdelegate.cs 文件中完成,而不是在 main.cs 文件中

我希望这可以帮助您解决问题。

【讨论】:

  • 我已经关注了一切,但它仍然崩溃!
【解决方案2】:

更新 Xamarin Studio 后,我的应用程序遇到了同样的问题,在尝试了 20 多种不同的解决方案并在所有论坛和 stackoverflow 中进行搜索后,结果发现 Visual Studio for mac 存在错误,有时它会添加多个 MtouchLink 配置在 *iOS.csproj 文件中:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
...
<MtouchLink>SdkOnly</MtouchLink>
<MtouchLink>Full</MtouchLink>

在我的情况下,IDE 正在保存两个链接器行为配置,并且应用程序在显示 LaunchScreen 图像后崩溃,仅在发布模式下

为了更正它,我刚刚使用 SublimeText 编辑了 *iOS.csproj 文件并删除了该行: &lt;MtouchLink&gt;Full&lt;/MtouchLink&gt;

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多