【复盘】iOS中宏的错误示范

Posted by 共田君的博客 on June 1, 2018

昨天发版阻塞了,测试反馈testfight的包从app唤起H5页面打开网页,但是在里面操作输入文字搜索一直闪屏,提示网络异常。但是之前构建的包全部都正常的。

  1. 第一时间排查配置的url是否正确,然后抓包一看这个是正常的,
  2. 然后一直想distribution和release有什么不同,由于开发一直用的是debug包,开始想办法构建release包和distribution的包,但是由于代码的复杂度,又需要重新构建,此时耗时是相当长的,一个漫长的等待中。。。
  3. 想办法安装上testfight的包,从测试那借来了账号,发现测试账号的设备满了,安装失败 !
  4. 构建中让测试上传一下日志,查看了一下日志发现h5内部的调用和出错信息是空缺的,看不出什么情况,另外访问的网址也是正常的,查看失败!
  5. 查看代码中宏的定义,并全局搜索在哪些地方用到了,一查,发现有个可疑的鬼 代码如下

image.png

这时候同事的机器代码跑起来了 让他把这句话去掉试试看,结果问题修复了。 然而,问题还没那么简单,因为H5的开发妹子被电话轰炸已经到公司楼下了,此时已经是晚上12点钟了,各位领导也在积极抢救中 这个必须当面给大家一个解释,为什么会有这么一段代码。

  1. 这段代码是从老工程移植过来的,当时是正确的,还是E领导亲手写的,是为了防劫持
  2. 这个宏是旧同事加的,估计是为了测试方便,非distribution环境就不让他编译
  3. 晚上下班前刚刚C更新了域名,为了与旧的域名做隔离,不想有任何其他关系
  4. testfight的包是最后出的,半夜才打包完成
  5. 各种因素水到渠成,终于踩到了这个坑,一切就像命中注定,前世因缘。

总结分割线 —

  1. 少用宏包逻辑代码
  2. 从外部拷贝代码要小心,尤其是拖文件夹更要小心
  3. 做好日志
  4. 尽早打正式环境的包,服务端,客户端要提前ready
  5. 少用宏包宏。。。
  6. 以上,你将会少很多定时炸弹

关注公众号