Xcode 9 新特性

Posted by GeorgeWang on June 8, 2017

WWDC 2017 上Apple推出了Xcode 9 ,这一版本的亮点还不少,特别是在代码编辑以及版本控制两方面;官网上的更新文档对Xcode 9 做了详细的介绍,以下是一些记录,希望对你有帮助。

0.亮点

  • 新的编辑器:更快、结构化的编辑器,智能文本高亮,支持Markdown
  • 重构:在编辑体验上的重构,包括Siwft、Objective-C以及可视化编辑等
  • 超快的搜索:搜索结果速度变快了
  • 调试:远程调试iOS和tvOS设备,新的Metal调试器
  • 版本控制:支持我们绑定GitHub账号,时刻更新代码
  • Xcode服务端编译:持续集成可以在Xcode9上完成,不用安装macOS Server
  • 新的Playground模版
  • 新的编译系统:增强可靠性和性能表现

1.通用

  • 用plist文件声明文本宏,声明用户、工程,自定义新文件头部,详见XcodeHelp
  • 更新索引引擎,包括编译时的索引
  • 设备窗口拆分为真机和模拟器

2.资源目录(Asset Catalogs)

  • 可以颜色命名(这个很好用,在app如果有主题色的时候,可以同时在InterfaceBuilder和代码中使用)
  • 宽色域图标、HEIF图片等资源支持

3.编译和链接

  • Xcode 9 增加了新的编译系统
  • Swift增加了新编译系统的预览
  • 编译系统提高可靠性
  • 解决一些工程配置问题
  • 提高整个编译系统的性能
  • 新的编译系统目前可选,以后会作为默认选项
  • 配置:选择 File > Project Settings or File > Workspace Settings > Build System type > New Build System (Preview)

4.功能

  • 热点和多径TCP的配置
  • 网络请求内容过滤、DNS代理、TCP/UDP代理
  • watchOS后台模式

5.调试

5.1 iOS和tvOS的网络调试功能

  • 以上两个系统可以通过WI-FI或者远程网络,或者通过Bonjour来调试程序,iOS设备要先插入一次(这个功能还挺便捷的),然后在设备窗口选中 Connect via Network选项,之后就可以断开设备进行网络调试

5.2 GPU帧捕捉 和 GPU覆盖

  • 这一点有兴趣可以看官方文档,这里不做介绍

5.3 未定义行为检测(Undefined Behavior Sanitizer)

  • 在scheme editor > Diagnostics 中设置为enable,帮助我们找到程序奔溃的位置、溢出、 unexpected behaviors等

5.4 主线程检测

  • 查找没有在主线程使用AppKit, UIKit, 以及WebKit的代码,Swift和C语言中支持

5.5 其他

  • 视图调试可以看到ViewController,检测iOS设备电量,断点的过滤

6.文档

  • 新的文档浏览器集合了参考、实例代码、文章
  • 加强文档查找
  • 新的文档跳跃栏
  • 实例代码下载

7. Instruments

  • 详见官方文档

8.界面编辑

  • 支持使用资源库中的命名颜色
  • 新的边距和基线(baseline)视图约束
  • 自动布局安全区域引导
  • 全屏watchOS应用的支持

9.Metal 2

  • 详见官方文档

10.重构(Refactoring)

  • 全新的文本查找系统,速度提升50倍
  • 全局重命名,兼容Swift, C, Objective-C, 和 C++文件,速度比以前快了50倍
  • 在一个地方预览所有修改,所有重命名的地方
  • Swift 和 Objective-C方法签名的转化
  • 一键更改
  • 一键自动填充缺少的Switch 声明强制遵从的协议方法

11.模拟器

  • 多个模拟器同时使用,让我们并行测试
  • 新的模拟器窗口,方便我们拖拽和改变其大小
  • 模拟器间数据共享,包括地图、图片、safari
  • 在xcrun工具中使用simctl命令,可以让我们选择,在关闭模拟器之后退出模拟器还是后台运行
  • 模拟器录屏

12.版本控制

  • Xcode 9 增加了新的版本控制系统
  • 新版本控制系统增加了导航栏,位于工程文件栏的右边,可以查看分支、标签、远程仓库等
  • 点击导航栏某一项,右边窗口有详细的内容
  • 新的分支记录编辑器更容易跳转
  • 新的差异比较编辑窗口
  • 绑定GitHub账号,一键创建工程或者获取已有工程,又或者查找github上的工程,克隆

13.代码编辑器

  • Xcode 9 增加新的代码编辑器
  • 速度更快、功能更强大的查找/替换
  • 更快的滚动,不管多大的文件
  • 直接操作代码块,Command键+选中之后左键,可以有补全、重命名等选项
  • 为版本控制的整合重新设计
  • 重新设计警告和错误提示信息
  • 支持Markdown,可以在xcode中查阅、编辑markdown文件

14.Swift

  • 支持Swift 4
  • Swift 4 and Swift 3可以用可以编译器编译
  • 更快的打代码以及减少代码大小

15.测试

  • 新增并行设备测试
  • XCTest新的API
    • 控制和捕获屏幕截图
    • 组测试活动
    • 测试附件
    • 在拆卸的块中清除测试状态
  • 多个app的UI测试
  • 特定语言的测试

16.Xcode Server

  • Xcode 9 中新增服务端/机器窗格、通过Preferences设置
  • 双向认证
  • 机器人(bots)的新功能
    • 支持自动和手动配置工作流程
    • xcodebuild传递额外参数
    • 并行测试设备和模拟器
    • 配置测试语言
    • 发送清除一切邮件

分享到: