• iOS Debug心得 (持续更新)


    最近在维护一个内部比较混乱的APP,Debug的时候遇到很多比较痛苦的地方,

    因此做一个Debug记录,对以后的开发会有比较大的帮助;

    这样,在开发新项目的时候就可以争取把一些BUG扼杀在襁褓中。 

    >> 切换Debug模式和Release模式,如果你不清楚这两种模式的区别的话,你是没办法正常打包应用的!


    >> 把调试和发布模式对应的配置都写到一个配置文件里,方便更改

      以下内容可供参考:
      1. 测试服务器和正式服务器的地址
      2. 各种第三方平台接口或者SDK的AppKey等标识符
      3. 如果是RN类型的APP,可能还要配置WebView里的BaseURL

    >> 用不同的Bundle Identifier来区分不同的应用,这样就可以同时打包和安装正式版、测试版

      为啥这样做?上司想装两个客户端来检查你的结果啊!

    >> 用写死的数据来测试接口内容,不必找后台要测试数据,大家都很忙的

    >> 注意金融数据的精度,在传递金额数据到后端时,如果没有规定要求,就用字符串类型来传!

      我维护的项目里面,之前的开发人员竟然使用了NSInteger来存储金额!!!  

    >> 不要盲目追求MVVM架构,能够把MVC实践好就很棒了!总之,要想办法把耦合度降低

      我负责维护的项目的耦合度非常高,MVC三部分高度耦合,后期更新和维护很费力

    >> 项目的文件目录结构要清晰、符合逻辑,文件的分布要利于查看!

      不要让所有的查看都依赖于搜索,这样其实很麻烦!

     

    >> 让程序入口和每个模块的入口都容易找到,这样找BUG会轻松很多;

      我负责维护的项目,入口隐蔽,文件目录也比较乱!

    >> 网络访问模块要做好URL打印的区分,便于调试的时候校对URL信息是否异常;

      在你需要处理很多URL信息的时候,如果只是能看到URL,你将变得十分痛苦!

    >> 除非为了效率或者可以肯定固定参数布局后的效果,否则尽量使用AutoLayout来进行UI布局。

    >> 提前检查UI是否异常(位置、大小、配色、是否适配多种分辨率)。

      不要等到APP已经上架了,才发现自己的应用无法在多种分辨率屏幕上显示预期的布局

      至少要用最小和最大分辨率的模拟器来运行项目,检查布局是否正常

    >> 视图控制器最好继承于一个基类,当需要修改如主题色的时候,可以很快调整完毕。

      

    >> 使用第三方依赖库一定要确定版本,如果是通过Cocoapods导入的第三方依赖库,

      如果有必要就把对方的代码fork一份,以免某天依赖库出现异常导致无法预料的后果。

    >> 单元测试集成测试都是必不可少的,Xcode8里的UI自动化测试功能还是比较好用的!

      不过你可能得去完善每个控件的Accessibility属性里的Identifier,这样有助于你写UI自动化测试代码,

      如果是tableView,还需要设置isAccessibilityElement为true。

    >> 用模拟器测试应用在不同版本的系统上运行的状况,以检查自己使用的所有API都可以正常工作

      比如 [NSTimer timerWithTimeInterval:repeats:block:]iOS 10以下使用,应用就会崩溃!!!


     Ficow原创,转载请注明出处:http://www.cnblogs.com/ficow/p/6552576.html

  • 相关阅读:
    Android基础之项目结构分析
    串口调试,提示the given port name does not start with COM/com异常解决办法,,发现是打印机在搞怪
    C# 通过URL获取图片并显示在PictureBox上的方法
    学习资料集合
    C#语音朗读文本 — TTS的实现
    SQL SERVER 2008安装错误(is not a valid login or you do have permission)
    函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。
    SerialPort使用
    Javascript函数的几种写法
    JS验证图片格式和大小并预览
  • 原文地址:https://www.cnblogs.com/ficow/p/6552576.html
Copyright © 2020-2023  润新知