应用程序甚至在启动之前就崩溃了。我该如何调试呢? [关闭]

Posted

技术标签:

【中文标题】应用程序甚至在启动之前就崩溃了。我该如何调试呢? [关闭]【英文标题】:App crashes even before launch. How can I debug this? [closed] 【发布时间】:2022-01-11 16:48:52 【问题描述】:

我有一个应用,一些用户报告说他们的应用在发布时崩溃了。但我没有看到崩溃报告,在 Crashlytics 上没有,在 Xcode 上也没有。可能是因为应用在调用 applicationDidFinishLaunching 之前就崩溃了。

你可以找到我从用户那里得到的video recording here。 ios版本:14.2.1

我该如何调试呢?可能是什么问题?任何想法都可以提供帮助。

提前致谢。

【问题讨论】:

如果你的应用有少量代码,我会开始一个新的,并在你的新应用中一步一步地复制你旧应用的内容,直到问题出现。这样你就可以弄清楚起源了。 您的应用程序是如何分发的?通过 XCode?通过TestFlight(似乎不是这样,因为没有黄点)?你什么时候部署的?它可能不再有效。 XCode ad-hoc 部署的应用程序可能有一周的预期寿命...... 您可以向用户询问他们的日志。 问题解决了。它与应用程序无关。显然,iOS 14.2 上的某些设备存在错误。即使您不导入 AdServices 框架,它也会导致崩溃。您可以在这里找到解决方案:developer.apple.com/forums/thread/673708 【参考方案1】:

为了在分析系统(如 Crashlytics 或 Sentry)中查看崩溃报告,您的用户需要在崩溃后重新启动应用并使其保持打开状态至少约 20 秒。崩溃报告每隔一段时间会以一批数据的形式发送到分析系统,而且永远不会在崩溃的那一刻发生。这就是为什么您不会在那里看到崩溃报告的原因——它们永远不会被发送。

至于可能的原因,如果您无法在自己的设备上重现它,这里有一些想法:

    如果遇到崩溃的用户刚刚更新您的应用到更高版本并且如果您使用 CoreData 或 Realm 并且最近升级了您的架构,则启动时崩溃可能由于数据库迁移不存在或不正确而发生。

    或者,如果您的代码尝试访问某些在某些 Apple 设备上不可用的硬件功能,则可能会发生崩溃。

【讨论】:

感谢您的回答。问题已经解决了。它与应用程序无关。显然,iOS 14.2 上的某些设备存在错误。即使您不导入 AdServices 框架,它也会导致崩溃。您可以在这里找到解决方案:developer.apple.com/forums/thread/673708

以上是关于应用程序甚至在启动之前就崩溃了。我该如何调试呢? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我该如何调查这些神秘的 Django 崩溃?

为啥 google breakpad 不能处理所有崩溃?我该如何调试这些案例?

从Xcode 10部署到运行iOS 12的iPhone时,应用程序立即崩溃

程序崩溃并出现 0xC000000D 并且没有异常 - 我该如何调试它?

QML Charts 导致启动时崩溃

Android Studio for Mac 在启动时崩溃