iOS 应用程序在 iOS 14 及更低版本的 Testflight 上启动时崩溃,但在 iOS 15+ 上不会崩溃

ChI*_*lls 10 crash xcode ios

从几天前开始,我们的应用程序和/或 Testflight 遇到了一些奇怪的问题:当从 Xcode 运行时,我们的应用程序在模拟器和设备(iOS 12、iOS 14 和 iOS 15)上运行良好,但当我们运行时,它在启动时崩溃了。通过 Testflight 存档并分发 iOS 14 及以下版本,但不适用于 iOS 15(我们尚未尝试实际发布到 AppStore)。在此之前,该应用程序在 iOS 12+ 上、Testflight 或其他平台上都运行得非常好。这些崩溃不会生成任何崩溃日志(无论是在 Crashlytics 上,还是在 Organizer 上,甚至在设备崩溃日志中),更神秘的是,当重新存档 3 周前没有问题的过去版本的代码时,在应用程序商店上运行时,我们现在遇到了崩溃问题。我们深入研究了设备日志以尝试获取更多信息,我们可以找到

com.apple.stability.crash {"appVersion":"3.3.1","bundleID":"com.cobble.ios","exceptionCodes":"0x0000000000000000, 0x0000000000000000","incidentID":"B47DF725-343B-4D8E-A1C4-8F52EB5766C1","logwritten":1,"process":"Cobble Production","terminationReasonExceptionCode":"0x1","terminationReasonNamespace":"DYLD"}
Run Code Online (Sandbox Code Playgroud)

对于 iOS 14,以及

Process exited: <FBApplicationProcess: 0x10a2dd110; Cobble Producti (com.cobble.ios); pid: -1> -> <FBApplicationProcessExitContext: 0x28331a100; exitReason: (none); terminationReason: (none)> {
    stateAtExit = <FBProcessState: 0x283cd8cc0; pid: 4156; taskState: Not Running; visibility: Unknown>;
}
Run Code Online (Sandbox Code Playgroud)

适用于 iOS 12。

到目前为止,我们还没有找到问题所在,但我们已经尝试了很多方法,从在不同的计算机上构建、在构建设置中进行尝试、更新我们的 Pod,到完全卸载/重新安装 Xcode 和来自 Github 的项目..

可能值得注意的是,我们正在使用 Xcode 的自动签名(更改这是我们的下一个测试)

任何帮助将不胜感激!!

ChI*_*lls 0

我们最终找到了解决问题的方法:

  • 我们正在使用新的 Xcode 13.2RC(并不理想,因为它还不是最终版本,但没有它就不走运) - 您需要最新的 MacOS 才能运行它
  • 我们已经从我们的构建中删除了对 iOS 12 的支持(幸运的是,我们有能力做到这一点,因为只有一小部分用户仍在使用该版本)这两件事都是我们所需要的,试图做到其中一个而不是另一个仍然会向我们展示崩溃情况。

我不知道这是否适合每个人,所以这里有一些我们用来获取一些想法的链接:

还想添加我们在调试时测试过的内容:

  • 从 Xcode Organizer 中,以 Dev 或 Ad Hoc 形式分发在 Testflight 上呈现问题的存档,在直接安装到设备时不会出现问题,这强化了这不是代码/存档问题的想法
  • 我们已使用各种配置文件(即席、开发和分发、仅使用 iOS 或 Apple 证书)将自动应用程序签名切换为手动,并且仅在使用分发配置文件分发到 Testflight/Store 时才会出现此问题

归根结底,这看起来确实像是苹果的问题,我们希望很快就能看到解决方案——特别是因为越来越多的人面临着类似的问题。