[译文]如何才能不崩溃 #8: Infrastructure

原文地址:

http://inessential.com/2015/06/10/how_not_to_crash_8_infrastructure

即使你认为你的app不会崩溃,你依然需要收集崩溃日志 - 因为没有绝对的不崩溃:你只能避免已知的崩溃错误。

有很多不同的服务:我尝试过一些后觉得都不错,所以我不会做特殊建议。

但有几件事情应该要做:

  1. 崩溃日志应该不需要用户去找到并发送给你。它应该是自动的(如果在OS X系统上,用户可能应该被提示;但是在iOS上,没人希望看到提示。)
  2. 应该有一个聚集崩溃日志的方法,你应该能获取到所有聚集起来的崩溃日志组,那样你就能知道哪些是频繁的,而哪些不是。
  3. 你应该能够将某些组标记为已解决。

这不够,当然,只是为了收集崩溃日志。你应该定期查阅。(我每天早上都看一下崩溃日志。)

错误追踪

我有一套。

对于我个人的项目,我使用  Lighthouse 、OmniOutliner和笔和纸的组合 - 但是你应该使用任何适合你的工具,只要你进入你的错误追踪工具而不迷路。

(Lighthouse是一个很好的错误追踪工具。对于叙述整个app的未来,我喜欢OmniOutliner,我在这上面可以找到一堆事情去做。对于短期的事情 - 对于只需要10步就可以完成的一个任务 - 我喜欢笔和纸,因为,要依赖于短期记忆是很累的,而笔和纸不会影响你的屏幕的上下文。)

错误和警告

Xcode默认没有开启足够的错误和警告。我强烈建议你看一下Peter Hosey的设置

这点可以移除你对你代码的怀疑。

更进一步,我会建议 - 我将警告转变为错误。这意味着,是的,如果有警告,我甚至不能在本地调试 - 但是,这是值得的。这意味着,无论什么时候,只要我的app在运行,那就没有警告。

Instruments

Instruments很棒。这是一个检查你的app创建了多少内存的很好的办法,并且对于你检查内存泄露也特别重要。

如果你崩溃了,最好使用僵尸(Zombies)工具。你的问题可能和僵尸无关,但是,当你怀疑的时候,这值得排除。

Article by 付军