翻译: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/WhatsNewXcode/xcode_9/xcode_9.html#//apple_ref/doc/uid/TP40004626


新功能概述:

设备环境:Mac OSX 10.12.5、iOS11、Xcode9 PS:这是WWDC2017的新功能,iOS11以上,Xcode9这是刚性要求。这个 功能不好找,就记下来了
Xcode 9的新功能
拥有为Apple平台创造出惊人应用所需的所有功能,Xcode 9在编辑甚至最大的文件时,速度和速度都非常快速。它也比以往更了解您的代码,因此您可以直接在编辑器中选择和编辑结构甚至转换选择。强大的新的重构任务发生到位,在Swift,Objective-C甚至用户界面文件上重命名符号,而不会跳过节拍。而与Swift 4中的源兼容性,Xcode 9使用相同的编译器来构建现有的Swift 3代码和更新的Swift 4代码,因此您可以按照自己的速度进行迁移。
全新编辑
源代码编辑器已经完全重建了惊人的速度。它以不间断的速度滚动,无论文件大小。而且,通过偏好设置,您可以更好地控制线间距,多种字体样式,甚至光标类型。新的命令点击手势可以轻松地根据结构可视化和选择代码段。问题已被重新设计,以便您的代码与Fix-it被很好地流动,它们被分组在一起,因此您可以在一次点击中提交多个更改。
在Markdown文件中,您键入时,标题,粗体和斜体文本,链接和其他格式将立即在编辑器中呈现。Jump Bar甚至可以了解Markdown结构,因此您可以快速浏览README.md和文档文件。
重构和变换
新的编辑器超出了文本输入与一个新的内置重构和转换引擎。当您选择符号或代码块时,编辑器将提供强大的操作,如“提取”或“重命名”。然后,Xcode将直接在编辑器中更新您的代码结构,让您专注于您正在处理的代码。Xcode 9支持以下转换和重构:
· 添加缺少的协议要求
· 生成缺少的实现存根
· 为抽象方法添加缺少的覆盖
· 提取到局部变量
· 提取方法/表达式
· 在switch语句中展开默认值以生成所有适用的情况
· 将/ else转换为/从switch语句
· 在NSLocalizedString宏中包装字符串
这仅仅是个开始。Xcode的本地转换引擎将作为Clang编译器项目的一部分开源。
源代码控制和GitHub
Xcode 9使源代码控制(与GitHub)更容易,更紧密地集成在一起。您的GitHub帐户内置于Xcode中,克隆窗口会显示您所有的个人GitHub存储库,以及您添加了星标的所有存储库。从这个窗口,您可以搜索所有GitHub,只需点击一下即可查看项目。
Git的支持现在位于前端,并具有全新的源代码管理导航器。快速查看每个分支机构,标签和遥控器的提交时间表。检查一个条目以查看所有受影响的文件或双击提交以查看所有更改的内容。通常的操作,如创建和合并分支,可以在导航器中快速访问。
Swift 4
由苹果领导的Swift.org开源社区帮助Swift快速构建,同时生产更快的应用程序和更小的可执行文件。新的Swift 4编译器现在了解Swift 3代码。您可以轻松地移动到Xcode 9,选择您的应用程序的哪些部分准备移动到Swift 4,然后稍后迁移其余的代码。该语言还具有增强的String类型。
无线连接
选择您的本地网络上的任何iOS或tvOS设备来安装,运行和调试您的应用程序,而无需将USB线插入到Mac中。首次使用新的iOS设备时,只需点击“通过网络连接”复选框,该设备就可以从网络上提供。无线开发也适用于其他应用程序,包括仪器,辅助功能检查器,Quicktime播放器和控制台。
模拟和测试
新的模拟器应用程序大大升级,启动时间更快,外观新颖 - 窗口现在就像您正在模拟的设备一样。设备中的按钮按预期工作,甚至可以从屏幕边缘模拟手势。触摸栏支持意味着快速操作,如旋转,只是一个轻拍。
您可以运行模拟器的多个实例来通过并行运行来加速测试,或者测试协调诸如在多个设备上同步到iCloud的任务的应用程序。从命令行轻松启动模拟器,即使在驾驶多个实例时也是完美的自动化测试。而Xcode服务器在所有Mac上设置更简单,因为它现在内置到Xcode中,不再需要单独的macOS Server应用程序。继续构建和测试您的应用程序并不容易。
更快索引速度
一个全新的索引引擎作为构建过程的一部分运行,因此Xcode自动了解您的代码。使用索引的任务(如快速打开)快得多。搜索大型项目感觉不太快 - 高达50倍。而新的构建系统显着降低了协调编译器,链接器和其他工具的任务的开销
本文翻译与 https://developer.apple.com/xcode/
此方式仅适用局域网内,同时软件有硬性要求,并且速度比线略慢一点 ,还可以接受,但是只支持ios11。

官方内容:

Xcode是用于为Apple TV,Apple Watch,iPad,iPhone和Mac创建应用程序的完整开发人员工具集。Xcode开发环境采用tvOS SDK,watchOS SDK,iOS SDK和macOS SDK的形式捆绑Instruments分析工具,Simulator和OS框架。

Xcode 9的亮点

Xcode 9包括整体质量改进以及广泛的新功能。

全新编辑。快速,基于结构的编辑器,可让您智能地突出显示和浏览代码。包括伟大的Markdown支持。

重构。重构内置于编辑体验之中,并可跨SwiftObjective-C,Interface Builder和许多其他文件类型。

超快速搜索“查找”导航器会立即返回结果。

调试。通过网络无线调试ios和tvOS设备,Metal的新调试器以及Xcode中的更多功能。

源控制。所有新的源代码管理导航器和集成的支持GitHub帐户可以快速浏览资源库并将您的存储库推向云端。

Xcode服务器内置。连续集成机器人可以在任何具有Xcode 9的Mac上运行,无需安装macOS Server。

新游乐场模板。包括iOS模板,旨在在iPad中的Xcode和swift Playground中运行良好。

新建系统。Xcode新的构建系统的选择性预览提供了更高的可靠性和性能。

一般

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

为项目中的用户,项目或特定用户定义文本宏。

自定义新的文件头。有关更多信息,请参阅Xcode帮助中的自定义文件头。

有关更多信息,请参阅Xcode帮助。

更新了索引引擎,包括在编译文件时编制索引的能力。

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

资产目录

命名颜色支持。

添加了广泛的应用程序图标。

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

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

增加了HEIF图像的支持。

建筑与连接

新的Xcode 9 - 新建系统。

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

提供更高的可靠性。

捕获许多项目配置问题。

提高整体构建系统性能。

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

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

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

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

功能

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

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

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

tvos背景提取的新模式。

核心ML

新的Xcode 9 - 核心ML编辑器。

为模型生成强类型接口。

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

调试

Xcode 9中的新功能 - iOS和tvOS设备的网络调试。

通过WiFi或有线网络调试iOS和tvOS设备。

通过Bonjour连接或输入IP地址。

需要插入iOS设备才能启用网络调试。

新的Xcode 9 - GPU帧捕获和GPU覆盖。

查看命令缓冲区,附件,资源和调用堆栈。

修改着色器并将更改保存到您的应用程序。

移动序列的时间轴。

检查和修改附件中各个像素的值,包括颜色值,alpha,深度等。

通过最小化纹理带宽,最小化渲染像素的数量,禁用混合阶段,仅显示线框,以及缩放镶嵌的数量,来实现渲染状态而不修改代码。

Xcode 9中的新功能 - 未定义的行为消毒剂。

使用未定义的行为消毒剂来查找程序崩溃的源,意外的行为以及与未来版本的Xcode的不兼容性。

检测C语言中的几种类型的未定义的行为,如整数溢出,无效的转换和对齐违规。

在方案编辑器的“诊断”窗格中启用未定义的行为消毒剂。

Xcode 9中的新功能 - 主线程检查器。

检测未在主线程上进行的AppKit,UIKit和WebKit方法调用。

在调试期间自动启用,并且可以在方案编辑器的“诊断”选项卡中禁用。

主线程检查器与Swift和c语言一起使用。

通过深度过滤来增强Breakpoint导航器。

添加了修改断点的可视指示符。

扩展视图调试器以显示视图控制器,并使用SceneKit和SpriteKit视图。

增强iOS电能表。

文档

新的统一浏览器,集成了参考,示例代码和文章。

改进文档搜索。

用于在页面之间导航的新跳转栏。

集成示例代码下载。

仪器

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

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

增强型金属调试仪。

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

界面生成器

增加了对资产目录使用命名颜色的支持。

增加了对新边距和基线视图约束的支持。

添加了对自动布局安全区域指南的支持。

增加了对全屏WatchOS应用程序的支持。

金属2支持

Xcode 9中的新功能 - Capture API。

在你的代码中定义明确的捕获边界。

使用新MTLCaptureManager类和新MTLCaptureScope协议来编程设置,管理和触发捕获边界。

使用扩展的Xcode GPU Capture UI手动启动和停止捕获。您还可以使用Xcode来捕获应用程序中定义的API边界。

Xcode 9中的新功能 - GPU计数器。

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

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

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

Xcode 9中的新功能 - GPU备注。

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

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

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

Xcode 9中的新功能 - 智能过滤。

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

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

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

新的Xcode 9 - VR支持。

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

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

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

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

重构

跨Swift,C,objective-c和C ++文件的全局重命名。

查看所有更改在一个地方。

转换Swift和Objective-C格式之间的方法签名。

根据需要更新属性,getter,setter和合成的iVars。

一个按钮更改。

修复 - 它会自动填充switch语句中的缺失情况,并且一键单击协议一致的强制性方法。

提取所有支持的语言的方法功能,以及其他语言特定的本地重构。

模拟器

Xcode 9中的新功能 - 多个并发模拟器。

同时运行多个模拟器。

并行运行更多测试

测试同步和其他多设备工作流程。

适用于iOS和watchOS模拟器的新Chrome包括硬件控件,并允许轻松拖动和调整模拟设备的大小。

从地图,照片和Safari与模拟器共享信息。

添加了关闭窗口或退出模拟器后运行模拟器的选项,以便与命令行工具的simctl命令更好地集成xcrun。

录制模拟器的视频。

通过选择帮助>模拟器帮助获取帮助。

源控制

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

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

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

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

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

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

源编辑

新的Xcode 9 - 所有新的源代码编辑器。

更快,更多功能查找和更换。

快速滚动任何大小的文件。

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

重新设计源代码管理的集成。

重新设计错误和警告消息的介绍。

支持Markdown。

迅速

新的Xcode 9 - Swift 4。

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

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

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

兼容性

Xcode 9.0需要运行MacOS Sierra 10.12.4或更高版本的Mac。

安装

Xcode 9 beta可以与以前版本的Xcode共存。

Xcode的预发行版本可从developer.apple.com提供给授权的种子开发人员,打包在压缩的XIP文件中。要在beta期间安装Xcode,请下载XIP文件,将其拖到“应用程序”文件夹中,然后双击该文件。XIP文件扩展到位。

注意:如果您在Safari首选项中启用了“打开”安全“文件下载”,则XIP文件将下载并自动扩展到您的下载文件夹中。在启动它之前将Xcode-beta拖到“应用程序”文件夹中。

在最终版本中,Xcode通过Mac App Store进行安装。

开发人员资源

Apple开发人员计划提供对Apple Store,Apple App,iPad,iPhone和iPod touch设备的访问App Store,Mac App Store和Apple TV App Store,附加支持和文档以及用于测试和部署的资源。有关更多信息,请访问Apple开发人员计划网站

访问Apple开发人员论坛,讨论任何苹果开发者软件,包括预发布产品。

有关最新的安全信息,请访问https://support.apple.com/kb/HT1222

关于SDK和模拟器

软件开发工具包(SDK)是代表特定watchOS,iOS或macOS版本的API的框架(库,标头和资源)的集合。您的应用程序从SDK获取的大多数功能实际上由主机操作系统提供,这使得正确的基本SDK和操作系统部署目标设置对应用程序兼容性至关重要。Xcode自动构建最新的SDK并针对最新的操作系统。

如果您的应用程序不需要最新的操作系统功能,则可以使用Xcode项目设置中的“操作系统部署目标”选项将其配置为在先前版本的平台操作系统上运行。如果您的项目是在旧版本的Xcode中创建的,您可以让Xcode更新您的项目。有关此功能的详细信息,请参阅项目现代化

重要提示:在将应用程序提交到App Store之前,您必须在运行受支持的目标操作系统版本或版本的设备上进行测试。

自动签名

如果您正在处理尚未更新到当前签名过程的旧项目,则对签名过程的更改可能会阻碍您的开发。

企业和App Store开发人员帐户的推荐方法是在开发和分发期间使用Xcode自动签名代码签名应用程序。有关自动签名的文档,请参阅Xcode帮助。如果您的旧项目未配置为使用自动签名,请阅读技术问答(QA1814)“设置自动配置的Xcode”,以了解可以重新配置Xcode项目的过程。

在使用其他技术之前,应考虑自动签名,但如果您的项目需要手动签名,请在Xcode帮助中搜索“手动签名”以查看当前的手动签名实践。

项目现代化

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

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

如果问题导航器列出了现代化问题,请单击该问题以查看一个对话框,以解释应该进行的更新,并允许您执行任何或所有更新。

单击执行更改后,无论是否选择进行所有更改,Xcode都不会再次显示警告。要重新运行检查,请在项目导航器中选择项目,然后选择编辑器>验证设置。

Xcode9 新功能的更多相关文章

  1. Xcode9新功能

    1.折叠代码 局部折叠(折叠一个函数):Command+Option+Left/Right 全局折叠(折叠当前文件下的全部函数): Shift+Command+Option+Left/Right 折叠 ...

  2. Xcode9新特性介绍-中文篇

    背景: Xcode 9 新特性介绍: 1.官方原文介绍链接 2.Xcode9 be ta 2 官方下载链接 本文为官方介绍翻译而来,布局排版等都是按照官方布局来的. 与原文相比,排版上基本还是熟悉的配 ...

  3. 从淘宝 UWP 的新功能 -- 比较页面来谈谈 UWP 的窗口多开功能

    前言 之前在 剁手党也有春天 -- 淘宝 UWP ”比较“功能诞生记 这篇随笔中介绍了一下 UWP 淘宝的“比较”新功能呱呱坠地的过程.在鲜活的文字背后,其实都是程序员不眠不休的血泪史(有血有泪有史) ...

  4. Sql Server 2016新功能之 Row-Level Security

    Sql Server 2016 有一个新功能叫 Row-Level Security ,大概意思是行版本的安全策略(原来我是个英语渣_(:з」∠)_) 直接上例子.这个功能相当通过对表添加一个函数作为 ...

  5. What's new in Windows 10 Enterprise with Microsoft Edge.(Windows 10 新功能)

    What's new in Windows 10 Enterprise with Microsoft Edge --带有Edge浏览器的Windows 10 企业版的新功能 本文摘录自公司群发邮件, ...

  6. MySQL 5.7 Replication 相关新功能说明

    背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...

  7. SQL Server2016 新功能实时查询统计信息

    SQL Server2016 新功能实时查询统计信息 很多时候有这样的场景,开发抱怨DBA没有调优好数据库,DBA抱怨开发写的程序代码差,因此,DBA和开发都成为了死对头,无法真正排查问题. DBA只 ...

  8. 一个新人如何学习在大型系统中添加新功能和Debug

    文章背景: 今年七月份正式入职,公司主营ERP软件,楼主所在的组主要负责二次开发,使用的语言是Java. 什么叫二次开发呢?ERP软件的客户都是企业.而这些企业之间的情况都有所不同,一套标准版本的企业 ...

  9. SQL Server 2014新功能PPT

        本篇文章是我在公司内部分享SQL Server 2014新功能的PPT,在本PPT中我详细描述了SQL Server除了BI方面的新功能,以及提供了大量的测试.希望对大家有帮助.     请点 ...

随机推荐

  1. 再谈CSS动画 - 说点不知道的(一)贝塞尔曲线

    今天重新翻看<CSS 揭秘>"过渡与动画"一章,并把该章代码重新敲了一遍,代码托管在我的Github,在此总结一些心得. 动画的奥秘 在网页中添加动画的目的是让用户有更 ...

  2. Mybatis 通过动态SQL获取序列值

      配置文件 <select id="getSeq" parameterType="string" resultType="long" ...

  3. 字典树应用 - poj1002

    字典树应用 - poj 1002 Description Businesses like to have memorable telephone numbers. One way to make a ...

  4. 【咖啡の设备】Wacaco的minipresso便携咖啡机(咖啡粉版,胶囊版)

    之前看到houjy527发帖说入手了一台minipresso胶囊版,想起来这货是个好玩具,出差旅行必备佳品(可惜我从没出过差) minipresso设计很赞,简直不能更方便了~ 下面是houjy527 ...

  5. 不一样的入门:看C# Hello World的17种写法

    摘要:本文针对不同阶段.不同程度的C#学习者,介绍了C# Hello World的17种不同写法,希望会对大家有所帮助.(C# Hello World写法入门.C# Hello World写法进阶.C ...

  6. C# 同步调用、异步调用、异步回调

    本文将主要通过“同步调用”.“异步调用”.“异步回调”三个示例来讲解在用委托执行同一个“加法类”的时候的的区别和利弊. 首先,通过代码定义一个委托和下面三个示例将要调用的方法: public dele ...

  7. virtual dom & mvvm

    虚拟dom 用js对象来表示dom树的结构,然后用这个对象来构建一个真正的dom树插入文档中: 当状态有变时,重新构造一个新的对象树,然后比较新的和旧的树,记录两个数的差异: 把差异部分应用到真正的d ...

  8. LR 的基础分析--y-手打

    一.分析Analysis Summary 1.实际参与测试的Vuser为10个 2.总吞吐量(TPS)为208725625bytes 3.平均吞吐量为714814bytes/second 4.总点击数 ...

  9. SQL 2008R2还原对于服务器失败 备份集中的数据库与现有数据库 3154错误

    以前用sql server 2005的时候就遇到过类似的问题,数据库在别的服务器上备份后,在本机无法还原,这次终于找到了解决方案,网上的没有找到类似的,希望能帮到大家! 原因分析:在SQL Serve ...

  10. 5分钟弄懂Docker

    尽管之前久闻Docker的大名了,但是天资愚钝,对其到底是个啥东西一直摸不清,最近花了一段时间整理了一下,算是整理出一点头绪来. 官网的介绍是这样的: Docker is an open platfo ...