iOS 捕获程序崩溃日志

iOS 捕获程序崩溃日志,第1张

iOS开发中遇到程序崩溃是很正常的事情,如何在程序崩溃时捕获到异常信息并通知开发者?

下面就介绍如何在iOS中实现:

1. 在程序启动时加上一个异常捕获监听,用来处理程序崩溃时的`回调动作

复制代码 代码如下:

NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler)

官方文档介绍:Sets the top-level error-handling function where you can perform last-minute logging before the program terminates.

UncaughtExceptionHandler是一个函数指针,该函数需要我们实现,可以取自己想要的名字。当程序发生异常崩溃时,该函数会得到调用,这跟C,C++中的回调函数的概念是一样的。

2. 实现自己的处理函数

复制代码 代码如下:

void UncaughtExceptionHandler(NSException *exception) {

NSArray *arr = [exception callStackSymbols]//得到当前调用栈信息

NSString *reason = [exception reason]//非常重要,就是崩溃的原因

NSString *name = [exception name]//异常类型

NSLog(@"exception type : %@ n crash reason : %@ n call stack info : %@", name, reason, arr)

}

以上代码很简单,但是带来的作用是非常大的。

1. 重启 iOS 设备

确定任何其他事情之前,只要重启你的 iOS 设备。又一次我发现 Moneywiz 应用程序突然一直奔溃,最后是重启解决了这个问题。

2. 退出并重新启动应用程序

有时候,最简单的解决方案也许不需要重启你的 iOS 设备,你有时应该试一试将它完全退出,然后再重新开启。这样的做法理论是,你将该应用程序从内存踢出,然后重新开始运行。

打开多任务切换视图

找到要退出应用程序,然后在该预览卡片上向上方轻扫退出

回到 iOS 的主屏幕,然后点击应用程序图标重新打开

3. 更新应用程序至最新版本

保持应用程序为最新状态通常是确保应用程序稳定运行的至关重要的一点,原因很简单:开发者在他们的应用程序中发现并解决了一些问题,然后推出一个更新的应用程序。

当然,很多用户会忽视应用程序更新,我自然是不推荐的。但如果你遇到一个特定的应用程序有崩溃问题,不妨让该应用程序更新至最新版本。

更新完毕后重新启动刚更新的应用程序

该如果应用程序的崩溃是和更新相关的错误引起的,这么做将解决这个问题。

4. 删除应用程序,重新安装之

是的,删除(卸载)该应用程序并重装之,细心的你可能发现了,删除应用程序的时候会删除其相关的数据(包括设置等),但你会立即重新安装它,这一过程通常是相当快的,但一些体积较大的应用程序可能需要多一点时间来重新下载。

找到 iOS 主屏幕上出现闪退的应用程序,然后点击并按住图标

按下左上角的「X」图标,然后确认删除,重新下载安装

再次尝试打开该应用程序

这一次它是否还闪退呢?一般说来已经不会了。

还有一个原因就是删除应用程序的时候将释放应用所占用的缓存,有时候这些缓存是应用程序崩溃的主要原因。特别是当某个应用程序在处理缓存方面比较糟糕的话,在试图加载应用程序内容的时候,可能会导致内存瞬间崩溃。

5. 更新至 iOS 的最新版本

更新到 iOS 的最新版本 *** 作通常包括修复有瑕疵的系统 bug,改进系统机制等。这一 *** 作同样会影响到一些第三方的应用程序,这也是为什么当 Apple 推出重大 iOS 版本更新后,一大拨应用程序进行「适配」更新的原因。更新 iOS 至最新版本相当简单,但是请务必备份你的设备。

使用 iTunes 或爱思助手备份 iOS 设备

转到「设置」-「通用」-「软件更新」部分

选择「下载并安装」选项,等待 iOS 更新完成或直接用爱思助手刷机

更新到 iOS 的最新版本和更新应用程序至最新版本通常是最有效的解决方案。我最近有一个朋友的 Instagram 应用程序不停崩溃,在使用程序的过程中滚动屏幕的时候也反复崩溃,唯一的解决办法是更新应用程序和 iOS 到最新的版本,结果问题立马得到解决。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12028899.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存