Xcode 9.0 新增功能大全

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支持。

重构。重构内置于编辑体验之中,并可跨Swift,Objective-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都不会再次显示警告。要重新运行检查,请在项目导航器中选择项目,然后选择编辑器>验证设置

转载于:https://www.cnblogs.com/jerTao/p/7601384.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391280.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 入门(4)镜像与容器

1. 镜像与容器 1.1 镜像 Docker镜像类似于未运行的exe应用程序,或者停止运行的VM。当使用docker run命令基于镜像启动容器时,容器应用便能为外部提供服务。 镜像实际上就是这个用来为容器进程提供隔离后执行环境的文件系统。我们也称之为根文件系统&a…

python:pytest中的setup和teardown

原文:https://www.cnblogs.com/peiminer/p/9376352.html  之前我写的unittest的setup和teardown,还有setupClass和teardownClass(需要配合classmethod装饰器一起使用),接下来就介绍pytest的类似于这类的固件。 &#…

如何开始使用任何类型的数据? - 第1部分

从数据开始 (START WITH DATA) My data science journey began with a student job in the Advanced Analytics department of one of the biggest automotive manufacturers in Germany. I was nave and still doing my masters.我的数据科学之旅从在德国最大的汽车制造商之一…

iHealth基于Docker的DevOps CI/CD实践

本文由1月31日晚iHealth运维技术负责人郭拓在Rancher官方技术交流群内所做分享的内容整理而成,分享了iHealth从最初的服务器端直接部署,到现在实现全自动CI/CD的实践经验。作者简介郭拓,北京爱和健康科技有限公司(iHealth)。负责公…

从早期的初创企业到MongoDB的经理(播客)

In this weeks podcast episode, I chat with Harry Wolff, an engineering manager at MongoDB in New York City. Harry has been in the world of tech for over a decade, holding jobs in various startups before ending up at Mongo. 在本周的播客节目中,我与…

leetcode 1011. 在 D 天内送达包裹的能力(二分法)

传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。 返回能在 D 天内将传送带上的所有包裹送达的船的最低运载…

python:pytest优秀博客

上海悠悠:https://www.cnblogs.com/yoyoketang/tag/pytest/ 转载于:https://www.cnblogs.com/gcgc/p/11514345.html

uva 11210

https://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&pageshow_problem&problem2151 题意:给你十三张麻将,问你需要哪几张牌就可以胡牌,这个胡牌排除了七小对以及十三幺 胡牌必须要有一个对子加n个…

机器学习图像源代码_使用带有代码的机器学习进行快速房地产图像分类

机器学习图像源代码RoomNet is a very lightweight (700 KB) and fast Convolutional Neural Net to classify pictures of different rooms of a house/apartment with 88.9 % validation accuracy over 1839 images. I have written this in python and TensorFlow.RoomNet是…

leetcode 938. 二叉搜索树的范围和

给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。 示例 1: 输入:root [10,5,15,3,7,null,18], low 7, high 15 输出:32 示例 2: 输入:root [10,5,15,3,7,13,18,1,nul…

456

456 转载于:https://www.cnblogs.com/Forever77/p/11517711.html

课后作业-结队编程项目进度-贪吃蛇

当前进度: 1.完成了窗口和蛇的绘制 2控制蛇的放向 3.绘制食物,随机出现 4.设计暂停键和开始键 有遇到过问题,但通过上网和向同学请教解决了转载于:https://www.cnblogs.com/qwsa/p/7605384.html

一百种简单整人方法_一种非常简单的用户故事方法

一百种简单整人方法User stories are a great way to plan development work. In theory. But how do you avoid getting burned in practice? I propose a radically simple approach.用户故事是计划开发工作的好方法。 理论上。 但是,如何避免在实践中被烫伤&…

COVID-19和世界幸福报告数据告诉我们什么?

For many people, the idea of ​​staying home actually sounded good at first. This process was really efficient for Netflix and Amazon. But then sad truths awaited us. What was boring was the number of dead and intubated patients one after the other. We al…

Python:self理解

Python类 class Student:# 类变量,可以通过类.类变量(Student.classroom)或者实例.类变量(a.classroom)方式调用classroom 火箭班def __init__(self, name, age):# self代表类的实例,self.name name表示当实例化Student时传入的name参数赋值给类的实例…

leetcode 633. 平方数之和(双指针)

给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 b2 c 。 示例 1: 输入:c 5 输出:true 解释:1 * 1 2 * 2 5 示例 2: 输入:c 3 输出:false 示例 3&…

洛谷 P2919 [USACO08NOV]守护农场Guarding the Farm

题目描述 The farm has many hills upon which Farmer John would like to place guards to ensure the safety of his valuable milk-cows. He wonders how many guards he will need if he wishes to put one on top of each hill. He has a map supplied as a matrix of int…

iOS 开发一定要尝试的 Texture(ASDK)

原文链接 - iOS 开发一定要尝试的 Texture(ASDK)(排版正常, 包含视频) 前言 本篇所涉及的性能问题我都将根据滑动的流畅性来评判, 包括掉帧情况和一些实际体验 ASDK 已经改名为 Texture, 我习惯称作 ASDK 编译环境: MacOS 10.13.3, Xcode 9.2 参与测试机型: iPhone 6 10.3.3, i…

lisp语言是最好的语言_Lisp可能不是数据科学的最佳语言,但是我们仍然可以从中学到什么呢?...

lisp语言是最好的语言This article is in response to Emmet Boudreau’s article ‘Should We be Using Lisp for Data-Science’.本文是对 Emmet Boudreau的文章“我们应该将Lisp用于数据科学”的 回应 。 Below, unless otherwise stated, lisp refers to Common Lisp; in …

链接访问后刷新颜色回到初始_如何使链接可访问(提示:颜色不够)

链接访问后刷新颜色回到初始Link accessibility is one of the most important aspects of usability. However, designers often dont understand what it takes to make links accessible. Most frequently, they only distinguish links by color, which makes it hard for …