简介
Xcode 9为Xcode带来了一些重大更新,这是对Swift的最重要的重构支持之一。Xcode的源编辑器在Swift中被完全重写,因此,滚动、搜索和重构非常快。Xcode现在也支持编辑Markdown文件。现在可以使用wifi连接的设备,也可以同时打开多个模拟器。
如果这还不够,Xcode还提供了GitHub账户集成代码源导航器,更准确的快速修复、支持断点调试、并可以不需要Xcode Server的支持,运行Bots持续集成环境。
编辑器
了解和利用编辑器的各种特性是一个程序员最基本的技能。今年Xcode 9被Swift重写后改进的不仅仅是功能,还有性能。
代码结构
按住Command键,然后鼠标移动到代码部分。如果停留在类、方法、和关键字上的话,会展示不同的高亮状态。

可以快速的查看方法括号开始和结束的位置。

如果if语句比较长,使用Command键能很快的找到所有if-else分支的结构。
操作菜单
当点击选中的高亮状态的关键字,会弹出一个操作菜单。

如果选中的是if语句,Xcode将提供3种操作:
Fold:合并if语句。
Add “else if” Statement:添加一条"else if"分支。
Extract Method:将这条if语句单独抽出成一条方法。

如果选中的是方法名,Xcode将提供不同的操作:
Jump to Definition:跳转到方法定义。
Show Quick Help:显示方法描述。
Edit All in Scope:批量修改方法名。

快速跳转到“方法定义”
如果习惯了之前版本使用command直接跳转到方法定义,在Xcode 9可以使用command+control+J。
或者强制修改成点击跳转”方法定义“。

GitHub集成
Xcode 9提供GitHub账号集成代码控制,提供搜索和克隆GitHub工程的功能。并支持新建分支、合并和推送代码到GitHub。

GitHub账号集成
选择首选项-Account,添加一个新的账号,选择GitHub。

克隆
选择Source Control,选择克隆选项。

可以在左边的视图中查看分支、tag、和注释。还可以看到分支的提交记录。

双击提交记录可以看到该提交的改动。

搜索和过滤
可以在过去的24小时、最后7天或最近30天内,以各种方式搜索和筛选提交。还可以通过作者、提交消息或修改来进行筛选。

分支和合并
可以在当前分支,新拉取一个分支。

把一个分支的改动合并到另一个分支。

断点调试
Xcode9可以使用编辑断点(edited breakpoints)显示一个修改断点的符号,可以根据输入的条件搜索断点。
编辑断点(edited breakpoints)
右键点击断点,选择编辑断点(edited breakpoints),选择添加Action。当程序执行到断点的地方,会执行Action里面的操作。

单击窗口的外部以退出断点编辑器,注意断点现在在内部有一个小的白色三角形,表示已经过编辑。鼠标悬停在断点,你会看到它说这个断点有添加Action。

搜索断点(searching breakpoints)
左侧工具栏选择断点一栏(快捷键command+8),可以看到有选择编辑断点和全部活跃断点,可以选择不同类型的断点并过滤。

实体文件夹和Group同步
Xcode 9默认新建groups时同步新建一个实体文件夹,文件夹的路径和groups的路径保持一致。当选择groups在Fidder中打开时,会打开对应的实体文件夹。当移动groups时,实体文件夹也会跟着移动。

优化调试视图
Xcode 9提供视图调试入口,可以展示当前界面的视图层次结构。在app运行的时候,点击调试视图按钮。

可以在左侧导航栏中看到所有视图的层次,选中一个视图,右侧属性栏会展示选中视图的所有属性信息。

运行时问题检查器
Xcode 8已经提供了2种运行时内存检查器:Address Sanitizer和Thread Sanitizer。Xcode 9又提供了2种:未定义检查器(Undefined Behavior Scanitizer)和主线程检查器(Main Thread Checker),可以检查出C语言的各种问题,和在非主线程更新UI代码。

主线程检查器默认是打开的,可以选择关闭。

改进模拟器
Xcode 9对模拟器进行了很多改进,换了新的边框设计,添加了关机键、音量键、静音键。并且支持拖动一角来缩放模拟器。

在一个模拟器打开的情况下,还可以另开多个模拟器,在不同的模拟器上运行不同的应用程序。并且支持Face up和Face down反向。
Xcode Server
Xcode 9支持在macOS上bots,在首选项里面可以启动集成bots。

无线开发
可以使用wifi方式连接设备,需要在设备和模拟器菜单选项中,选中连接网络。

但是设备和电脑必须在同一个wifi环境下,仅支持iOS11设备。
新的构建系统
Xcode 9提供一个新的构建系统,提高性能并能捕获很多项目配置问题。可以在File - Project Setting中开启,选择新的构建系统。

其他
本篇文章主要介绍了一些Xcode 9的新特性,还有一些可以参考WWDC视频。
网友评论