XCode9新特性

题外话

随着iOS 1011 的正式推送,新版开发工具Xcode9也相应的更新了。官网对新版XCode9对此一波牛B吹上天,就目前使用来讲,仍是不少bug的,好比一个.m实现文件中若是IBOutlet太多的话,那么修改和编码这个.m文件简直就是噩梦,动一下卡一分钟,甚至直接Crash。以前版本的Xcode还在继续使用的IBOutlet左边小圆点是实心,表明这个IBOutlet有与IB文件有连线,点击能够跳转到相应的IB文件中相应的控件处,如今打开IB文件才会有实心圆点,不然基本都是空心圆。使用中也遇到屡次不明缘由的Crash,不过这一版的不少功能仍是至关贴心的,也很强大!等Apple更新吧。
这是一次公司内部技术分享会的内容,内容共分为三个部分:编程

  • Xcode9新特性
  • iOS 11 适配
  • iPhone X适配
    这是第一个部分,若有须要请持续关注。
    言归正传。

Xcode9新特性

Compatibility-兼容性

Xcode 9.0须要运行MacOS Sierra 10.12.4或更高版本的Mac。
想使用Xcode9,先升级Mac系统吧。复制代码

Simulator-模拟器

  1. 多个并发模拟器。同时运行多个模拟器。swift

    这个能够说是开发者调试程序的福音啊,之后就能够在不一样系统,不一样机型上同时进行对比,调试美滋滋~~~复制代码
  2. 从地图,照片和Safari与模拟器共享信息。
  3. 添加了关闭窗口或退出模拟器后运行模拟器的选项,以便与命令行工具的simctl命令更好地集成xcrun。
  4. 录制模拟器的视频。
  5. 经过选择帮助>模拟器帮助获取帮助。

Source Editing ( 源代码编辑器)

  1. 更快,更多功能查找和更换。xcode

  2. 快速滚动任何大小的文件。安全

  3. 直接操纵代码结构,如令牌和块。bash

  4. 从新设计源代码管理的集成。服务器

  5. 从新设计错误和警告消息的介绍。markdown

  6. 支持Markdown。

    举个🌰: 下面一段代码,在使用QuickHelp功能时,呈现MarkDown书写的注释网络

    /**
         ### 这是一段注释 ###
         #### 使用markdown格式 ####
         * 参数1 double 类型
         * 参数2 double 类型
     */
         func sum (num1:Double,num2:Double) ->Double {
             return num1 + num2
         }
    
         let count = sum(num1: 1.0, num2: 2.0)复制代码

介绍这个功能,主要是以为若是团队规范代码格式的话,书写着能够在写注释的时候更有帮助,让使用者能获得查看系统级别API的体验。并发

Debugging

  1. iOS和tvOS设备的网络调试。(须要手机与电脑在统一网络上)app

    经过WiFi或有线网络调试iOS和tvOS设备。
      经过Bonjour链接或输入IP地址。
      第一次须要插入iOS设备才能启用网络调试。复制代码
  2. 主线程检查器。

    检测未在主线程上进行的AppKit,UIKit和WebKit方法调用。
     在调试期间自动启用,而且能够在方案编辑器的“诊断”选项卡中禁用。
     主线程检查器与Swift和C语言一块儿使用。
     经过深度过滤来加强Breakpoint导航器。
     添加了修改断点的可视指示符。
     扩展视图调试器以显示视图控制器,并使用SceneKit和SpriteKit视图。
     加强iOS电能表。复制代码

重构

  1. 跨Swift,C,Objective-C和C ++文件的全局重命名。
  2. 重构。重构内置于编辑体验之中,并可跨Swift,Objective-C,Interface Builder和许多其余文件类型。
  3. 基于Swift4的兼容性,能够兼容构建Swift3
  4. 提供简单的fix-it 功能。
  5. 自动补全缺乏的协议方法
  6. 补全缺乏的方法实现
  7. 提取变量. 方法和表达式
  8. 自动生成switch语句的case

Xcode Server

新建在Xcode服务器。

在偏好配置中,配置Xcode服务器和BOT权限设置。
增长了双因素身份验证支持。
更新的机器人功能

支持自动和手动配置工做流。
传递额外的参数xcodebuild。
在设备和模拟器上并行运行测试。
为测试配置语言和区域。
发送“所有清除”电子邮件通知。

以前版本的Xcode也有相似的功能,可是须要单独下载Xcode Server程序来进行项目的集成。如今已经集成到Xcode9.

Project Modernization(项目现代化)

  1. 当您打开一个项目时,Xcode对其进行评估,以查看是否应更新任何设置。此功能提供了一个简单的方法来确保您的项目符合最新的SDK和最佳作法。

  2. 打开问题导航器以查看是否须要更新项目中的任何内容。您也能够在项目导航器中选择项目,而后选择编辑器>验证设置。

  3. 若是问题导航器列出了现代化问题,请单击该问题以查看一个对话框,以解释应该进行的更新,并容许您执行任何或全部更新。

  4. 单击执行更改后,不管是否选择进行全部更改,Xcode都不会再次显示警告。要从新运行检查,请在项目导航器中选择项目,而后选择编辑器>验证设置。

Instruments

用于在跟踪文档的图形区域中固定图形的新拆分视图。

添加了全部策略,并将策略选择器移动到跟踪文档顶部的新工具栏。

加强型金属调试仪。

金属系统跟踪VR支持查看事件,如合成器活动,姿式查询等

Interface Builder

增长了对资产目录使用命名颜色的支持。
    增长了对新边距和基线视图约束的支持。
    添加了对自动布局安全区域指南的支持。
    增长了对全屏WatchOS应用程序的支持。复制代码

Metal 2 Support

  1. Capture API。

在你的代码中定义明确的捕获边界。
使用新MTLCaptureManager类和新MTLCaptureScope协议来编程设置,管理和触发捕获边界。
使用扩展的Xcode GPU Capture UI手动启动和中止捕获。您还可使用Xcode来捕获应用程序中定义的API边界。

  1. GPU计数器。

分析有关特定GPU捕获的详细分析指标。在iOS和tvOS中,GPU计数器显示为命令编码器的时间线;在macOS中,GPU计数器显示为绘制或调度调用的时间线。

检查渲染或计算流水线阶段的运行时性能,例如顶点着色器,片断着色器,计算内核等。

比较每一个流水线阶段花费的GPU时间量,以查找您的性能瓶颈。

  1. GPU备注。

在金属着色语言代码中查找优化机会。

在着色器编辑器中调试特定于设备的运行时问题。

遵循直接的解决方案和指示来改善您的代码。

  1. 智能过滤。

经过键入到调试导航器来查找特定的调试信息。当您键入和突出显示匹配的文本(例如资源,像素格式,功能名称,对象标签等)时,Xcode会动态显示建议。

经过从预约义的Metal对象菜单中选择选项来过滤搜索结果。

使用多个匹配条件的多个过滤器。

  1. VR支持。

查看VR提交和左眼/右眼提交的表面。

添加了纹理检查,用于检查渲染目标中各个像素的值,如颜色,alpha,深度等。

添加检查输出顶点属性到缓冲区编辑器。

添加数据提示支持金属对象,如纹理,缓冲区和采样器。

Source Control

新的源代码管理导航器,用于查看当前工做空间的分支,标签和远程存储库。

新的源代码管理检查器显示所选导航器项目的详细信息。

分支历史的新编辑器,包括一个方便导航的跳转杆。

文件差别的新的并行编辑器。

更容易和更快地访问常见任务。

GitHub账户集成,轻松浏览和一键建立项目及相关的GitHub资源库。

Swift (新的Xcode 9 -Swift 4)

Swift 4和Swift 3,Swift 4和Swift 3目标的一个编译器能够在同一个项目中编译。

改进的迁移者体验,仅支持将选定目标迁移到Swift 4。

更快的通用代码和减小的代码大小。

Testing

并行测试装置

对XCTest添加了新的APIs

控制和捕捉截图。
团体测试活动。
测试附件。
在特有界面清理测试状态。
在一个UI测试中应用多个应用程序。
使用指定的语言和区域运行测试。

General(其余功能)

  1. 更新了使用plist文件定义文本宏的方式。

    为项目中的用户,项目或特定用户定义文本宏。
    
       自定义新的文件头。
    
       有关更多信息。复制代码
  2. 更新了索引引擎,包括在编译文件时编制索引的能力。

  3. 设备窗口被分红用于设备和模拟器的单独窗格。

Asset Catalogs

  1. 命名颜色支持。

  2. 添加了普遍的应用程序图标。

  3. 为App图标集添加了更大的iOS营销。

  4. 添加了保留图像矢量数据以选择动态类型缩放的选项。

  5. 增长了HEIF图像的支持。

Building and Linking

  1. 添加了一个在Swift中编写的新构建系统的预览。

  2. 提供更高的可靠性。

  3. 捕获许多项目配置问题。

  4. 提升总体构建系统性能。

  5. 注意,构建系统性能不包括构建系统使用的编译器,连接器和其余工具。

  6. 目前可选,并将成为将来版本的Xcode的默认值。

  7. 要选择项目或工做区的新构建系统,请选择“文件”>“项目设置”或“文件”>“工做区设置”,而后选择“构建系统”类型的“新建构建系统(预览)”。

  8. 有关与现有项目兼容性的说明,请参阅Xcode版本说明。

Capabilities

  1. iOS热点和多路径TCP的新配置。

  2. 新的网络配置,包括内容过滤,代理DNS查询以及代理TCP和UDP链接。

  3. 用于watchOS的新背景模式用于录音和转弯方向。

  4. tvOS背景提取的新模式。

Core ML( 核心ML编辑器)

  1. 为模型生成强类型接口。

  2. 用于设备使用的模型编译。

官网What's new in Xcode11

相关文章
相关标签/搜索