应用程序甚至在启动之前就崩溃了。我该如何调试呢? [关闭]
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以上是关于应用程序甚至在启动之前就崩溃了。我该如何调试呢? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
为啥 google breakpad 不能处理所有崩溃?我该如何调试这些案例?
从Xcode 10部署到运行iOS 12的iPhone时,应用程序立即崩溃