iOS开发常用之测试调试、动态更新

测试及调试

  • 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扩展与宿主应用的通讯框架。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我有一个梦想

QT Creator 快速入门教程 读书笔记(一)

一 Qt简介 Qt 是一个跨平台的C++应用程序框架,支持Windows、Linux、Mac OS X、Android、iOS、Windows Phone、嵌入...

66160
来自专栏空帆船w

最好用的 Markdown 编辑器

Markdown ,相信没有人不知道了吧,这里不多介绍了。如果还没听过,强烈建议百度一下,五分钟即可上手,包你会了之后就不想zai用 Office Word 写...

32630
来自专栏walterlv - 吕毅的博客

用 AppContext 解决类库的更新兼容问题

2017-09-30 15:45

22410
来自专栏听Allen瞎扯淡

解决 Windows10 笔记本关上后仍会掉电的问题

一开始我只是想在谷歌上搜索一下,为啥我的 Win10 笔记本在盖上盖子以后放入背包中,每次拿出来之后电量都会有所下降,结果就一下子看到了很多很神奇的东西,包括 ...

2.2K20
来自专栏崔庆才的专栏

你的 Mac 用对了吗?推荐一些 Mac 上比较好用的软件

最近有一个朋友刚入手了 Mac,准备专门搞开发用,让我给他推荐几款软件,然后我就把我的 Launchpad 截图发给了他,他看到这密密麻麻的软件完全不知所措,如...

57800
来自专栏张善友的专栏

NHibernate VS IbatisNet

  NHibernate是当前最流行的Java O/R mapping框架Hibernate的移植版本,当前版本是1.0 .2。它出身于sf.net..Ibat...

20970
来自专栏张善友的专栏

MSDN 杂志 Windows 8 特刊

Windows 运行时: 使用 Windows 运行时改变应用程序开发的面貌 Windows 运行时是创建 Windows 应用商店应用程序的核心。 了解它如何...

19170
来自专栏FreeBuf

利用私有DNS,“查找我的 iPhone”可被轻松绕过

iPhone自带的“寻找我的iPhone”功能一直以来都是小偷们需要解决的问题之一。这个功能就像守护者一样,当你遗失手机时帮助你定位,而实际上小偷总能找到办法绕...

563100
来自专栏GuZhenYin

C#开发移动应用系列(1.环境搭建)

前言 是时候蹭一波热度了..咳咳..我什么都没说.. 其实也是有感而发,昨天看到Jesse写的博文(是时候开始用C#快速开发移动应用了),才幡然醒悟 , 原来我...

31280
来自专栏Java学习网

Web开发在过去20多年时间里如何改变了我

web在过去20年时间里改变得相当快。越来越多的逻辑从服务器端移动到了客户端。不但需要在客户端编写更复杂的JavaScript代码,而且最近几年还发生了一些奇特...

33760

扫码关注云+社区

领取腾讯云代金券