iOS开发常用之测试调试、动态更新
2018-11-21 本文已影响70人
1ace156a39cd
测试及调试
- HeapInspector - HeapInspector是一个用于检测应用程序的内存泄漏的开源调试工具。
- Crashlytics - Crashlytics崩溃报告崩溃日志使用说明 。
- UIViewController-Swizzled - 把你进入的每一个控制器的类名打出来,如果看一些特别复杂的项目的时候直接运行demo就可以知道执行次序了。
- snoop-it -snoop-it比UIViewController-Swizzled好用,代码托管在谷歌上。
- 版本 - 版本比较小工具。
- MobileWebPageTest - MobileWebPageTest是用来测试移动网页性能的软件,它可以对页面的加载和渲染过程进行截屏,协助开发者分析出页面性能瓶颈。
- KKLog - 一个日志管理系统。
- CleanroomLogger - 相当于CocoaLumberjack或Log4j的Swift版本,功能上甚至更强大。另外,源代码中已经内含了完整的API文档,使用非常方便。
- Buildasaur - 自动测试框架Buildasaur。
- 使用Quick框架和Nimble来测试ViewControler - Quick是一个用于创建BDD测试的框架。配合Nimbl,可以为您创建更符合预期目标的测试。
- fastlane - 一套iOS开发和持续集成的命令行工具fastlane,可以用来快速搭建CI甚至自动提交的开发环境。这套工具中包括上传ipa文件,自动截取多语言截屏,生成推送证书,管理产品证书等一系列实用工具。
- KIF - 是一个开源的用户界面UI测试框架。使用KIF,并利用iOS中的辅助功能API,你将能够编写模拟用户输入,例如点击,触摸和文本输入,自动化的UI测试。
- 快速 - 用于Swift中的单元测试(也可用于Objective-C),与Xcode整合在一起。如果你是Objective-C的粉丝,我建议用Specta代替这个,但是对Swift使用者来说,Quick是最佳选择。
- Sleipnir - Swift的测试框架。
- kiwi-bdd - TDD或BDD,objective-c语言的测试框架,最流行的BDD测试框架了,Kiwi最受欢迎(根据github上的star数来推断,行为描述和期望写起来也比较易懂,至少我是这么认为的)iOS开发中的测试框架。
- specta - TDD或BDD,objective-c语言的测试框架,用的人多。
- cedar - TDD或BDD,objective-c语言的测试框架,用的人少。
- ViewMonitor - 能够帮助iOS开发者们精确的测量视图,可直接在调试应用中查看具体的某个视图的坐标,宽高等参数。
- MMPlaceHolder - 一行代码显示UIView的位置及相关参数。
- XXPlaceHolder.swift - MMPlaceHolder的swift版本。
- KMCGeigerCounter - KMCGeigerCounter通过复杂和简单的视图演示了类似盖革计数器的帧速计算功能。掉帧通常是可见的,但是很难区分55fps和60fps之间的不同,而KMCGeigerCounter可以让你观测到掉掉5帧的情况。
- SwiftyBeaver - 一个完善的日志工具,支持彩色输出,输出内容到文件,重要性分级,多输出目标。工具执行在后台,不影响性能,可以极大提高开发效率。
- swiftlog - 为Swift应用提供快捷添加日志信息的方法,Swift包管理支持(SPM),使用惊艳的彩虹包输出彩色日志,支持写入文件。使用swiftlog
- Log.swift - 灵活,易用,可定制输出格式和主题风格的日志类(Swift),支持控制台彩色输出。
- Cuckoo.swift - Cuckoo.swift一款用法更接近于传统单元测试Mock框架库(区别之处在于需要用脚本预先生成Mock类)。
- XCGLogger.swift - XCGLogger.swift功能完整的日志管理类库。
- MSLeakHunter - 自动检测UIViewController和UIView对象的内存泄露.MLeaksFinder的使用参照
- CocoaLumberjack - 是一个快速,简单,但很强大的日志框架。
- CocoaLumberjack - 是一个快速,简单,但很强大的日志框架。
- ipapy - iOS项目自动打包脚本,并且上传到fir.im,然后发送邮件给测试人员。
- fbretaincycledetector - Facebook出品,通过运行时监测循环引用。
- FBMemoryProfiler - Facebook出品,内存检测库。FBMemoryProfiler基础教程。
- FBAllocationTracker - Facebook出品,跟踪oc对象的分配情况。
- xctool - Facebook出的自动化打包工具,它规范了输出的日志,而且一些错误信息也更清晰一些。
- Peek.swift - 更友好,手势方式检查界面内组件信息(相当于浏览器元素检查功能),界面调试利器。
========
动态更新
- waxPatch - 大众点评的屠毅敏同学在基础蜡的基础上写了waxPatch,这个工具的主要原理是通过lua来针对objc的方法进行替换,由于lua本身是解释型语言,可以通过动态下载得到,因此具备了一定的动态部署能力。
- JSPatch - JSPatch是一个开源项目(Github链接),只需在项目里引入极小的引擎文件,就可以使用JavaScript调用任何Objective-C的原生接口,替换任意Objective-C原生方法。目前主要用于下发JS的脚本替换原生Objective-C代码,实时修复线上bug。官网。(JSPatchX)[ https://github.com/bang590/JSPatchX ] JSPatch的XCode代码补全插件。
- CTJSBridge - JCTJSBridge:iOS桥接应用程序与h5 web视图进行交互。
========
苹果手表
- Tesla汽车AppleWatch应用演示 - 通过AppleWatch控制特斯拉汽车,同时可以看到汽车的相关信息,比如剩余电量,可续行里程等,以及解锁/上锁车门,调节司机和乘客的四区域空调温度,开启车辆大灯,定位汽车等。源码推荐说明。
- WatchKit的应用程序 - WatchKit开源小项目示例集锦。是不可多得地学习WatchKit的示例式教程(1.如何创建一个简单的交互式计数器; 2.如何从手表上控制iOS应用程序; 3.如何在WatchKit应用程序和iOS应用之间共享数据; 4,如何创建一个拥有不同背景色的数字时钟; 5,展示不同的UI层; 6,如何创建支持滑动手势的应用程序。
- KYVoiceCurve - 类似Apple Watch中语音的声音曲线动画。
- IGInterfaceDataTable - IGInterfaceDataTable是WKInterfaceTable对象的一个类别,可以让开发者更简单地配置多维数据。该项目使用类似Apple Watch表格,而不是将数据结构扁平化成为数组。
- Apple Watch开发教程资料汇总 - Apple Watch开发教程资料汇总。
- Stargate - 通过iPhone桥接实现Mac与Watch的即时通讯.Stargate通过封装两个优秀的基础类MMWormhole和PeerKit实现高效的通讯应用.-- swift
- soon - 一款倒计时WatchKit示例应用。作者从架构的角度,思考如何设计一个完整,通讯高效且性能又好的WatchKit扩展应用。该示例学习性非常强.-- swift
- watchOS-2-Sampler - 基于watchOS 2若干新特性,写了相应的示例代码供大家学习,参考。
- HMWatch - HMWatch是个有待完善的watchOS 2.0 HomeKit应用示例。
- CocoaMultipeer - CocoaMultipeer这个开源框架支持OS X,iOS和watchOS设备间的点对点通信,解决watchOS和Mac之间通信的方案还是很有用的。
- HighstreetWatchApp - 是电商平台Highstreet针对App Watch的一款应用,该演示中加载的是虚拟数据。
- NKWatchChart - NKWatchChart是一个基于PNChart专门为Apple Watch开发的图表库,目前支持线条,饼图,圆圈和雷达等图表形式。
- BeijingAirWatch - !国人的开源项目代码WatchOS 2.0实时空气质量的并发症主要为中国城市苹果表盘实时刷新北上广沉蓉空气质量。
- MMWormhole.swift - MMWormhole.swift:iOS或OS X扩展与宿主应用的通讯框架。