OC

Knowledge OS
登录 注册
全部话题 移民 创业 iOS Mac Objective-C Swift Android 招聘 求职

大家是怎么防止或预防,跟踪IOS 闪退的出现?

Sungrone
Sungrone 发布于 2013年10月29日
无人欣赏。

最近我的应用遇到十分纳闷的事情,就是在测试机上测试好好的,放上架使用后人们总出现不同程度的错误导致闪退(是根据友盟的日志),目前我的应用大部分都是由于数组越界导致问题的(但测试就没有遇到过)。想问问大牛们是怎样控制和跟踪已上架项目的情况?毕竟友盟的仅显示了错误信息,没有来源不好跟踪。

共21条回复
楼长 ·
Lithium 回复于 2013年10月29日

除了空指针,越界什么的异常都可以catch的=。= 不过官方不鼓励try catch,不过=。= 管他呢。。。

2楼 ·
tangyumeng 回复于 2013年10月29日

crashlytics ,你可以试试。 数组越界其实你可以用一个category 重写数组的objectAtIndex 。如果越界返回nil 。总比崩溃对用户友好一些。我是这样做的。。

3楼 ·
yangjie6020 回复于 2013年10月29日

2楼 @tangyumeng 好建议 为嘛我的crashlytics一直在排队呢。。。。。

4楼 ·
abigfrog 回复于 2013年10月29日

做好边界测试

5楼 ·
tangyumeng 回复于 2013年10月29日

3楼 @yangjie6020 我是之前测试用过,实际项目中没有用到。。。好像显得我对公司项目不上心的样子 😢

6楼 ·
Sungrone 回复于 2013年10月29日

1楼 @Lithium 我也是由于官方不建议,所以没有用JAVA式的方法来做这个

7楼 ·
Sungrone 回复于 2013年10月29日

3楼 @yangjie6020 crashlytics 是要排队的?

4楼 @abigfrog 这个感觉是网络问题导致的

8楼 ·
terryso 回复于 2013年10月29日

1楼 @Lithium 用catch的话,程序会在不正常状态,接下来会出现什么问题都是不可预知的,还不如让APP直接crash。 要完全避免crash基本上很难,只能尽最大能力预防或提早发现,我们现在的做法是: 1 使用crashlytics,跟踪线上用户crash时的详细信息。crashlytics的信息比友盟的详细很多,很多时候可以详细到代码行。并且可以添加自己的日志,这些日志会在crash报告中包含。 2 代码中使用NSAssert之类的防御性编程,让Debug版的APP在数据不符合预期时,抛出异常。 3 每次发布前都用xcode的静态分析工具,分析源代码。 4 尽可能的消灭编译警告。 5 在模拟器时测试时,要时不时运用一下模拟器的内存警告功能,这样会经常会碰到一些不是你预期的问题。 6 测试机最好是低端一点的机器,容易出问题。

9楼 ·
appleseedez 回复于 2013年10月29日

这个要分析原因吧。 导致闪退的原因:1. 程序逻辑 2. 边界条件 3. 内存用量。 前面两个原因目前都是通过单元测试来保证。 内存这块需要测试时留心。 (如果lz熟悉instrument 会有帮助)

10楼 ·
Lithium 回复于 2013年10月29日

8楼 @terryso 当然catch以后还是会做一些清理工作,这类清理工作其实和事前做的也类似。请教下,越界的exception,catch以后返回nil,会有什么问题么?

之前也稍微考虑了一下成本和代价,觉得还是catch要好得多。

本帖有21个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。
登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]

AltStyle によって変換されたページ (->オリジナル) /