上一次生产环境我们出现重大bug,因ApplePay上线,其中有一个宏文件我同事忘记加版本控制,测试也没测试(因为是小版本,applepay还未开放),导致线上一天崩溃近万次,多亏了jspatch,用热修复解决了此问题。那么问题来了,怎么让开发人员提前看到编译警告呢,以至于不犯这种低级错误。 解决1.xcodebuild
这是我第一眼想到的方法,写shell脚本,用自动编译的形式检测。但是这个有很大的问题:
201601181.png
2.更好的解决方法更好的解决方式明显是让编译器直接给出警告!那么如何才能让编译器给出警告呢?
201601182.png
我在stack overflow上搜到了一篇很受启发的文章:Is there a way for XCode to warn about new API calls?
201601184.png
一开始我以为是把UIKit都系统控件是不是放在我自定义头文件之前了,后面过了很长时间才觉得应该Xcode中某些编译配置的问题,最终查到了是Enable Modules 和 Link Framwork automatically的原因,这是Xcode5之后提出的一门技术,具体可参考[iOS7中Objective-C和Foundation的新特性],最终我在Debug模式设置Enable Modules 和 Link Framework automatically为NO(可能会出现编译错误,因为自动连接取消,一些关联的库文件需要自己手动添加)
201601185.png
(责任编辑:好模板) |