Xcode 9新特性

官方文档链接 淘劵吧
正文:

What's New in Xcode 9

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

20170619232851913.png

Highlights of Xcode 9(Xcode 9的亮点)

Xcode 9包括整体质量改进以及广泛的新功能。
1、全新编辑。快速,基于结构的编辑器,可让您智能地突出显示和浏览代码。包括伟大的Markdown支持。
2、重构。重构内置于编辑体验之中,并可跨SwiftObjective-C,Interface Builder和许多其他文件类型。
3、超快速搜索。“查找”导航器会立即返回结果。
4、调试。通过网络无线调试iOS和tvOS设备,Metal的新调试器以及Xcode中的更多功能。
5、源控制。所有新的源代码管理导航器和集成的支持GitHub帐户可以快速浏览资源库并将您的存储库推向云端。
6、Xcode服务器内置。连续集成机器人可以在任何具有Xcode 9的Mac上运行,无需安装macOS Server。
7、新游乐场模板。包括iOS模板,旨在在iPad中的Xcode和Swift Playground中运行良好。
8、新建系统。Xcode新的构建系统的选择性预览提供了更高的可靠性和性能。

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、用于设备使用的模型编译。

Debugging

1、 iOS和tvOS设备的网络调试。
通过WiFi或有线网络调试iOS和tvOS设备。
通过Bonjour连接或输入IP地址。
需要插入iOS设备才能启用网络调试。
具体步骤:点击查看真机无线调试步骤
2、 GPU帧捕获和GPU覆盖。
查看命令缓冲区,附件,资源和调用堆栈。
修改着色器并将更改保存到您的应用程序。
移动序列的时间轴。
检查和修改附件中各个像素的值,包括颜色值,alpha,深度等。
通过最小化纹理带宽,最小化渲染像素的数量,禁用混合阶段,仅显示线框,以及缩放镶嵌的数量,来实现渲染状态而不修改代码。
3、 未定义的行为消毒剂。
使用未定义的行为消毒剂来查找程序崩溃的源,意外的行为以及与未来版本的Xcode的不兼容性。
检测C语言中的几种类型的未定义的行为,如整数溢出,无效的转换和对齐违规。
在方案编辑器的“诊断”窗格中启用未定义的行为消毒剂。
4、主线程检查器。
检测未在主线程上进行的AppKit,UIKit和WebKit方法调用。
在调试期间自动启用,并且可以在方案编辑器的“诊断”选项卡中禁用。
主线程检查器与Swift和C语言一起使用。
通过深度过滤来增强Breakpoint导航器。
添加了修改断点的可视指示符。
扩展视图调试器以显示视图控制器,并使用SceneKit和SpriteKit视图。
增强iOS电能表。

Documentation

新的统一浏览器,集成了参考,示例代码和文章。
改进文档搜索。
用于在页面之间导航的新跳转栏。
集成示例代码下载。

Instruments

用于在跟踪文档的图形区域中固定图形的新拆分视图。
添加了所有策略,并将策略选择器移动到跟踪文档顶部的新工具栏。
增强型金属调试仪。
金属系统跟踪VR支持查看事件,如合成器活动,姿势查询等

Interface Builder

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

Metal 2 Support

1、 Capture API。
在你的代码中定义明确的捕获边界。
使用新MTLCaptureManager类和新MTLCaptureScope协议来编程设置,管理和触发捕获边界。
使用扩展的Xcode GPU Capture UI手动启动和停止捕获。您还可以使用Xcode来捕获应用程序中定义的API边界。
2、 GPU计数器。
分析有关特定GPU捕获的详细分析指标。在iOS和tvOS中,GPU计数器显示为命令编码器的时间线;在macOS中,GPU计数器显示为绘制或调度调用的时间线。
检查渲染或计算流水线阶段的运行时性能,例如顶点着色器,片段着色器,计算内核等。
比较每个流水线阶段花费的GPU时间量,以查找您的性能瓶颈。
3、 GPU备注。
在金属着色语言代码中查找优化机会。
在着色器编辑器中调试特定于设备的运行时问题。
遵循直接的解决方案和指示来改善您的代码。
4、 智能过滤。
通过键入到调试导航器来查找特定的调试信息。当您键入和突出显示匹配的文本(例如资源,像素格式,功能名称,对象标签等)时,Xcode会动态显示建议。
通过从预定义的Metal对象菜单中选择选项来过滤搜索结果。
使用多个匹配条件的多个过滤器。
5、 VR支持。
查看VR提交和左眼/右眼提交的表面。
添加了纹理检查,用于检查渲染目标中各个像素的值,如颜色,alpha,深度等。
添加检查输出顶点属性到缓冲区编辑器。
添加数据提示支持金属对象,如纹理,缓冲区和采样器。

Refactoring

跨Swift,C,Objective-C和C ++文件的全局重命名。
查看所有更改在一个地方。
转换Swift和Objective-C格式之间的方法签名。
根据需要更新属性,getter,setter和合成的iVars。
一个按钮更改。
修复 - 它会自动填充switch语句中的缺失情况,并且一键单击协议一致的强制性方法。
提取所有支持的语言的方法功能,以及其他语言特定的本地重构。

Simulator-模拟器

1、 多个并发模拟器。
同时运行多个模拟器。
并行运行更多测试项目。
测试同步和其他多设备工作流程。

适用于iOS和watchOS模拟器的新Chrome包括硬件控件,并允许轻松拖动和调整模拟设备的大小。
从地图,照片和Safari与模拟器共享信息。
添加了关闭窗口或退出模拟器后运行模拟器的选项,以便与命令行工具的simctl命令更好地集成xcrun。
录制模拟器的视频。
通过选择帮助>模拟器帮助获取帮助。

Source Control

新的源代码管理导航器,用于查看当前工作空间的分支,标签和远程存储库。
新的源代码管理检查器显示所选导航器项目的详细信息。
分支历史的新编辑器,包括一个方便导航的跳转杆。
文件差异的新的并行编辑器。
更容易和更快地访问常见任务。
GitHub帐户集成,轻松浏览和一键创建项目及相关的GitHub资源库。

Source Editing ( 源代码编辑器)

更快,更多功能查找和更换。
快速滚动任何大小的文件。
直接操纵代码结构,如令牌和块。
重新设计源代码管理的集成。
重新设计错误和警告消息的介绍。
支持Markdown。

Swift (新的Xcode 9 -Swift 4)

Swift 4和Swift 3,Swift 4和Swift 3目标的一个编译器可以在同一个项目中编译。
改进的迁移者体验,仅支持将选定目标迁移到Swift 4。
更快的通用代码和减少的代码大小。

Testing

并行测试装置
对XCTest添加了新的APIs
控制和捕捉截图。
团体测试活动。
测试附件。
在特有界面清理测试状态。

在一个UI测试中应用多个应用程序。使用指定的语言和区域运行测试。

Xcode Server

新建在Xcode服务器。
在偏好配置中,配置Xcode服务器和BOT权限设置。

增加了双因素身份验证支持。更新的机器人功能
支持自动和手动配置工作流。
传递额外的参数xcodebuild。
在设备和模拟器上并行运行测试。
为测试配置语言和区域。
发送“全部清除”电子邮件通知。

Compatibility-兼容性

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

Installation-安装

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

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

Developer Resources-开发人员资源

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

About SDKs and Simulator(关于SDK和模拟器)

软件开发工具包(SDK)是代表特定watchOS,iOS或macOS版本的API的框架(库,标头和资源)的集合。您的应用程序从SDK获取的大多数功能实际上由主机操作系统提供,这使得正确的基本SDK和操作系统部署目标设置对应用程序兼容性至关重要。Xcode自动构建最新的SDK并针对最新的操作系统。
如果您的应用程序不需要最新的操作系统功能,则可以使用Xcode项目设置中的“操作系统部署目标”选项将其配置为在先前版本的平台操作系统上运行。如果您的项目是在旧版本的Xcode中创建的,您可以让Xcode更新您的项目。有关此功能的详细信息,请参阅项目现代化
重要提示:在将应用程序提交到App Store之前,您必须在运行受支持的目标操作系统版本或版本的设备上进行测试。

Automatic Signing(自动签名)

如果您正在处理尚未更新到当前签名过程的旧项目,则对签名过程的更改可能会阻碍您的开发。
企业和App Store开发人员帐户的推荐方法是在开发和分发期间使用Xcode自动签名代码签名应用程序。有关自动签名的文档,请参阅Xcode帮助。如果您的旧项目未配置为使用自动签名,请阅读技术问答(QA1814)“设置自动配置的Xcode”,以了解可以重新配置Xcode项目的过程。
在使用其他技术之前,应考虑自动签名,但如果您的项目需要手动签名,请在Xcode帮助中搜索“手动签名”以查看当前的手动签名实践。

Project Modernization(项目现代化)

当您打开一个项目时,Xcode对其进行评估,以查看是否应更新任何设置。此功能提供了一个简单的方法来确保您的项目符合最新的SDK和最佳做法。
打开问题导航器以查看是否需要更新项目中的任何内容。您也可以在项目导航器中选择项目,然后选择编辑器>验证设置。
如果问题导航器列出了现代化问题,请单击该问题以查看一个对话框,以解释应该进行的更新,并允许您执行任何或所有更新。
单击执行更改后,无论是否选择进行所有更改,Xcode都不会再次显示警告。要重新运行检查,请在项目导航器中选择项目,然后选择编辑器>验证设置。

See Also

想要学习更多关于Xcode的知识,请打开Xcode,选择 Help > Xcode help。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • 原文链接 Xcode 9的新功能 Xcode是用于为Apple TV,Apple Watch,iPad,iPhon...
    Jelly_沫阅读 1,364评论 0 0
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,010评论 4 62
  • 妈妈说,如果香椿树上面出现一串串的小果,说明今年老天爷给的雨水多了。 我家的香椿树上结了小果。还没等到果实开成干花...
    孟seventh阅读 1,062评论 0 7
  • 丑小鸭的故事我们小时候都读过,小时候家长或者老师给我们的解读大概就是要学会忍耐,坚持,执着,这样才能蜕变成美丽的白...
    文艺风阅读 324评论 0 0
  • 《虽然不相见》,有一种感情叫一见钟情。那么我对这本书便是此情。刚开始我爱上的是“虽然不相见”,现在我更爱”却也不相...
    吾念艺阅读 393评论 6 9