大家是怎么防止或预防,跟踪IOS 闪退的出现?
最近我的应用遇到十分纳闷的事情,就是在测试机上测试好好的,放上架使用后人们总出现不同程度的错误导致闪退(是根据友盟的日志),目前我的应用大部分都是由于数组越界导致问题的(但测试就没有遇到过)。想问问大牛们是怎样控制和跟踪已上架项目的情况?毕竟友盟的仅显示了错误信息,没有来源不好跟踪。
最近我的应用遇到十分纳闷的事情,就是在测试机上测试好好的,放上架使用后人们总出现不同程度的错误导致闪退(是根据友盟的日志),目前我的应用大部分都是由于数组越界导致问题的(但测试就没有遇到过)。想问问大牛们是怎样控制和跟踪已上架项目的情况?毕竟友盟的仅显示了错误信息,没有来源不好跟踪。
crashlytics ,你可以试试。 数组越界其实你可以用一个category 重写数组的objectAtIndex 。如果越界返回nil 。总比崩溃对用户友好一些。我是这样做的。。
1楼 @Lithium 用catch的话,程序会在不正常状态,接下来会出现什么问题都是不可预知的,还不如让APP直接crash。 要完全避免crash基本上很难,只能尽最大能力预防或提早发现,我们现在的做法是: 1 使用crashlytics,跟踪线上用户crash时的详细信息。crashlytics的信息比友盟的详细很多,很多时候可以详细到代码行。并且可以添加自己的日志,这些日志会在crash报告中包含。 2 代码中使用NSAssert之类的防御性编程,让Debug版的APP在数据不符合预期时,抛出异常。 3 每次发布前都用xcode的静态分析工具,分析源代码。 4 尽可能的消灭编译警告。 5 在模拟器时测试时,要时不时运用一下模拟器的内存警告功能,这样会经常会碰到一些不是你预期的问题。 6 测试机最好是低端一点的机器,容易出问题。