如何确定 ios 应用在 iOS 13 开始时崩溃的原因

how to determine why ios app crashes on iOS 13 at start

我很难确定为什么我的应用程序在 iOS 设备上通过 testflight 下载时崩溃。如果我通过 xcode 将它上传到模拟器或物理设备,它会按预期工作;当通过 testflight 下载到 ios13 设备(ios12 没问题)时,它在启动时崩溃,似乎是在请求权限时。

唯一要求的权限是通知和麦克风,但是在崩溃后我转到设置面板,看到麦克风没有被授予,而通知是。 所以我认为麦克风权限有问题并从 Info.plist 中删除了它:没有任何改变,它仍然崩溃了,也许不是麦克风的问题。

我还导出了 ipa 用于临时分发,令我惊讶的是,通过 https 在本地网络服务器上安装 OTA 没有问题。

有什么想法可以确定发生了什么吗?顺便说一下,在 testflight 崩溃报告中没有堆栈跟踪或任何有用的信息,只有关于设备的信息(型号、内存电池等)

您可以通过让您的设备崩溃登录来简单地找出确切的问题:

  • 管理器 ->Select 你的应用 -> 崩溃
  • 或者您可以按照以下步骤下载设备日志以获取确切的问题:

仅分享我的经验,以防其他人遇到同样的问题。

该问题是由故事板中未使用的旧组件引起的。 有一个已弃用的 UISearchDisplayController,它触发了与 tetflight 交付的一些交互。通过临时服务器分发的相同 IPA 没有引起任何问题。

也许 Testflight 交付现在进行了某种与已弃用组件冲突的优化?

但是,只需删除该组件即可解决崩溃问题。