苹果公司揭秘首批列入

源代码兼容性是 Swift 今后的靶子。为了促成这一指标,(苹果公司的 Swift编写翻译器团队)构建了三个源包容性测验套件,用于依据 Swift源代码(逐步增添)语料库对编写翻译器进行回归测量检验修改。
增加到那么些测量检验套件的品种,都会指向Swift的摩登开辟版本举办期限创设,实现Swift持续系统融为豆蔻梢头体,也让
Swift 编写翻译器开垦人士能够深远掌握 斯维夫特 语言在具体应用中的宽容性须要。

初稿地址:点击张开链接

眼下项目项目清单:

  • AMScrollingNavbar

  • Alamofire

  • AsyncNinja

  • BlueSocket

  • DNS

  • Dollar

  • GRDB.swift

  • Guitar

  • IBAnimatable

  • Kickstarter-Prelude

  • Kickstarter-ReactiveExtensions

  • Kingfisher

  • Kronos

  • Kitura

  • Lark

  • mapper

  • ObjectMapper

  • Perfect

  • PinkyPromise

  • Plank

  • PromiseKit

  • Realm

  • ReSwift

  • ReactiveCocoa

  • ReactiveSwift

  • RxDataSources

  • SRP

  • Serpent

  • Sourcery

  • Starscream

  • Surge

  • SwiftDate

  • SwiftGraph

  • panelkit

  • siesta

  • swiftlint

  • vapor

Xcode 9

加上项目

Swift源包容性测验套件是社区驱动的,那表示开源斯维夫特项目全体者能够付出契合检验收下标准的档期的顺序,以归入测量检验套件。增加到套件中的项目可用作通用源包容性测试。

检验收下标准

要进入斯维夫特源代码宽容性测量试验套件,项目必得切合以下须要:

  1. 目标为Linux,macOS或iOS / tvOS / watchOS设备

  2. 使用Xcode或许SPM软件包微电脑

  3. 支持在Linux或macOS上构建

  4. 托管在可掌握访谈的git酒店中

  5. 出品分段使用Swift 3.0宽容性编写翻译,并透过具有单元测量检验

  6. 有支持者及时消除难点

  7. 与最新GM / Beta版本的Xcode和swiftpm兼容

  8. 而且档次效果与利益与在编项目并未有重叠

  9. 行使以下开源公约:

  • BSD

  • MIT

  • Apache License, version 2.0

  • Eclipse Public License

  • Mozilla Public License (MPL) 1.1

  • MPL 2.0

  • CDDL

加上类型

要将满意检验收下标准的种类增进到套件中,请实践以下步骤:

  1. 承保项目在针对斯维夫特 3.0 克拉霉素特定情景下成功构建

  2. 针对源代码宽容性套件存款和储蓄库始建一个提取央求,改革projects.json以含有要加多到测验套件中的项目援用。

类型目录是二个JSON文件,此中蕴藏Xcode 或Swift Package
Manager目的操作的仓库储存库列表。

累积向品种模板等越多内容请查看 Swift官网

(文/开源中夏族民共和国State of Qatar    

Xcode 9兼容性

Xcode 9需求Mac运转macOS 10.12.6或越来越高版本。

Xcode 9包括iOS 11,WatchOS 4,macOS 10.13和tvOS 11的SDK。

Xcode 9.0

一般

新功能

在导航和帮助办公室编辑器中加多了用于鲜明文件对应物的后缀Test和Tests后缀。(28981734)

加多-runFirstLaunch了一个新xcodebuild标记,用于检查许可左券的情事,并设置运行Xcode所需的其余软件包。(23529342)

主旨NFC现在能够透过Xcode中的“功能”选项卡启用。(32520707)

追加了还要运维三个本子的Xcode应用程序的支撑,以致其余相关工具,如Simulator。Xcode
9.0无法与最早版本同期运转。(23140937)

已化解的难题

修复了造成App Store上传败北并冒出错误代码-22421的主题素材。(25068558)

已知的难点

在OS X 10.9或iOS
7上,运行使用泛型投射或反射的斯威夫特应用程序可能会促成包涵该措辞的错误object_isClass
symbol not found。(33872748)

从微处理器窗口上传应用内购买内容失败并出示错误消息The archive contains
nothing that can be signed。(33951562)

消除措施:使用转运器上传应用内购买内容。有关详细新闻,请参阅https://help.apple.com/itc/appsspec。

导出特殊或商铺IPA时,斯威夫特符号抽离要求启用应用程序疏落或从Bitcode重新创建。有关愈来愈多音讯,请参阅Xcode扶助中的分发选项。(31737836)

消除措施:导出应用程序时启用应用程序抛荒或从Bitcode重新构建。

弃用

抱有iOS
11的配置指标的应用程序不再次创下设三16位片段。要营造并包蕴30位片,请将配备指标设置为较早版本的iOS。(32163517)

消毒液地址

新功能

增多了对超过范围的变量使用内部存款和储蓄器的检查。(32308829)

累计“检查评定到重返后选择货仓”,能够筛选在函数再次回到后使用本地函数变量的内部存款和储蓄器。伸开Scheme编辑器的Diagnostics窗格中的选项。(32308829)

地方消毒剂未来与Malloc Scribble宽容。(32359908)

苹果LLVM编写翻译器和初级工具

新功能

日增链路时间优化的性质。(22867330)

增加了一个警报,用于调用performSelector由选取器引用的主意重返结构,联合或向量类型的诀要。(12056271)

立异-Wstrict-prototypes以警报关于非原型函数,块注解和C和Objective-C中的类型。(15060615)

立异了expected identifier错误如何地理Objective-C ++代码中的C
++关键字。在Objective-C中有效但在Objective-C
++中没用的标记符有叁个更现实的谬误音讯。新错误的三个例证是:error:
expected identifier; ‘new’ is a keyword in Objective-C++ @protocol new
^。深入分析器在这里错误后重温旧业更佳,以改良文件其他部分的错误报告。(20626062)

增添-iframeworkwithsysroot了三个下令行选项,将系统根路线(-isysroot)增加到提供的框架的门径。(21316352)

增进-Wunguarded-availability了三个新的编写翻译器标识,提示在布署指标版本之后的操作系统版本中引进的Objective-C
API未被保密的使用。

为了堤防利用新的API,请使用一个if结合的讲话@available,三个新的Objective-C表明式来检查系统版本。比如:

if(@available(macOS 10.13,iOS 11,*)){

//编写翻译器不会警报关于利用macOS 10.13 API

//或iOS 11这里

}

C或C
++代码能够运用__builtin_available,它的语义相当于叁个新的嵌入函数@available。

该-Wunguarded-availability标记默许关闭,以幸免在现成项目中现身意外警示。,编写翻译器标识的较不严加的版本,仅在MacOS
10.13或越来越高版本,iOS 11或越来越高版本,tvOS 11或更加高版本或watchOS
4或越来越高版本中引进时才会警告API的无保障接纳。-Wunguarded-availability-new该-Wunguarded-availability-new标记暗许启用。(7184689)

采用typedef代替块类型的块参数的占位符今后在块属性的setter使用代码达成时扩展为块评释。(2一九八二862)

Xcode提供贫乏C ++
11结商谈首要字的代码实现结果。代码达成结果中隐含以下布局:

static_assert

alignas

代码实现结果中带有以下入眼字和独特标记符:

constexpr

final

noexcept

override

thread_local

的__auto_type关键字被归纳在代码达成结果代码,使用C或Objective-C的。(29219205)

Xcode为正视类的分子提供代码落成结果。比如:

模板

void appendIfTrue(std :: vector &dest,const T&value){

DEST。// Xcode现在将显得“。”后的连锁达成结果。

}

请用心,当成员表明式满含信任根底时,将不会提供代码实现结果。举个例子:

模板

void appendIfTrue(std :: vector >&dest,const T&value){

dest.at(0)。// Xcode *不会有连锁的成功结果

//这里的std :: vector的成员

}

(29818301)

#pragma pack包罗的预编写翻译头文件中的指令状态今后被封存。(21359084)

固然伞头是子模块的一片段,模块图中的不完全伞头的警告也会接触。(22623686)

由重复包蕴非模块标题引起的重定义错误今后来得了招致重复富含的带有文件栈。(24116019)

已消除的难题

当-EClang中的标记用于预管理时,editor placeholder in source
file不再显得错误。(32718000)

已知的标题

Xcode不可能编写翻译富含std::function不完全重回类型的变量的代码。举个例子,上边包车型地铁代码不符合C
++规范。(34010071)。

一而再一连课程{

std :: function m_next;

};

当启用了默许创设设置-fvisibility=hidden的标记(),而且符号申明满含具备macOS可用性的可用性属性API_AVAILABLE(macos(10.12卡塔尔国,
ios(10卡塔尔国卡塔尔(قطر‎,则符号的可知性设置为default实际不是hidden。(33655115)

解决办法:__attribute__((visibility(“hidden”)))除了API_AVAILABLE掩没证明之外还足以接收。

弃用

对象早于macOS 10.11或iOS
9的靶子C方法的向量参数再次来到值不再实用。(21662309)

费用目录

新功能

资金目录未来支持可以在源文件和Interface
Builder中应用的命名颜色。(28900538)

资本目录以往支撑高效用的图像格式,满含与文件.avci,.heic甚至.heif文件扩大名。(29959599)

已知的难点

选拔Xcode将应用程序提交到App Store时,财富目录中的WatchKit App
Store图标不会上传。(33383969)

缓慢解决形式:应用iTunes Connect网络应用程序上传WatchKit App StoreLogo。

tvOS的施用集团Logo满含2个本子的Logo的未使用的插槽。当时隙中的任何图像都将被忽略。(33800909)

苹果电视机4K应用程序必需带有2x发射图像以越来越高的分辨率运维。(33968521)

建造与连接

新功能

Xcode
9包罗了叁个从斯威夫特开端写作的新的创设系统。它设计用来越来越高的可信赖性,而且捕获规范营造系统未有的品类安顿难题。创设系统的习性(不包罗编写翻译器,链接器和其他构建筑工程具)已经大大改善。那一个新的创设系统是独立自己作主在斯威夫特开放源代码开辟品种以上的。

在Xcode
9.0中,暗中认可情状下禁止使用新的营造系统。要启用新的营造系统,请选拔“文件”>“项目设置”或“文件”>“专门的职业区设置”,然后在菜单中选拔“塑造系统的新创建建系统”选项。对于命令行构建,将-UseNewBuildSystem=YES标记传递给xcodebuild。新的创设系统将改成现在版本的Xcode中的暗许塑造系统。(一九一八9225)

即使新的营造系统与存活项目中度协作,但由于以下原因,一些品种也许须求退换:

新的营造系统对营造中的成分之间的轮回举行更严峻的检查,避防卫不需求的重新建立。要消除此主题素材,请确认保证生成的此外公文在急需事情发生在此之前生成。举例,要是二个对象都发出二个出口,何况依赖于选拔该出口的其余目的,则将该出口的生育活动到其本身的靶子中,并在营造中较早地运营该对象。

构建中的任何单个文件由七个构建命令生成是大错特错的。举个例子,借使五个目的每一个从shell脚本阶段注明相似的输出文件,则将出口文件的宣示总结为单个目的。

举个例子由shell脚本生成的出口文件用作营造中别的义务的输入(比如,另三个shell脚本),则该出口必需注明为浮动它的台本的显式输出;否则营造系统或然会尝试在文件生成早前找寻文件,招致营造战败。

当新的营造系统不支持始终寻觅客户路线(ALWAYS_SEARCH_USER_PATHS)设置时生成的金钱观标题映射YES。相反,设置ALWAYS_SEARCH_USER_PATHS到NO并搬迁到使用现代化的标题包蕴语法。

将品种存储库中的任何所需的头文件加多到Xcode项目中,以管教它们可用以#include(通过品种宽标题映射)。

foo.h对品种标题使用quote-style
include(“”),并foo.h为系统标题预先流出角括号include(<>)。

当运行shell脚本营造阶段时,新营造系统将undefined_arch作为ARCH境况变量的值传递。早前的价值早前从未很好的概念。决议于此值的别样shell脚本必得对正值创设的享有定义的系统布局科学推行,可经过ARCHS碰到变量使用。

新的构建系统协助“清理营造文件夹”行为。不援救标准的“干净”行为。

对于涵Gass威夫特并定义模块的对象,生成的module.modulemap文件现在包涵,requires
objc因而能够运用Objective-C以外的任何语言(如C ++)。(28650820)

STRIP_SWIFT_SYMBOLS暗中同意情形下,新的Strip 斯维夫特Symbols()营造设置被启用。它调节符号抽离的等级,以便当创设的链接付加物被抽离时,全体Swift符号都被去除。那大大减少了斯维夫特框架的大大小小。借使缺点和失误Swift符号会招致难点,举例使用时dladdr(卡塔尔国,能够禁止使用此设置。要从曾经被分离的文本中查阅导出的标志,请使用xcrun
dyldinfo -export并非nm。(31306055)

为测量检验操作启用代码覆盖的方案今后得以兑现运转和解析操作的代码覆盖,进而降低营造应用程序的四个本子的内需。要关张除测量检验之外的具有操作的代码覆盖,请为禁用代码覆盖率的那多少个操作使用单独的方案。(31848014)

增加了预编写翻译桥接头(SWIFT_PRECOMPILE_BRIDGING_HEADE奥德赛),那是Swift编写翻译器的新创设设置。私下认可情况下启用此设置,并在调用的混合源营造中加多新的可选步骤Precompile斯威夫特BridgingHeader,进而抓牢总体构建时间。假使在这里步骤中爆发意外错误,请禁止使用此构建设置以省略可选步骤。(31851450)

添加了Swift 3 @objc
Inference(SWIFT_SWIFT3_OBJC_INFERENCE),这是八个新的营造设置,用于调节斯维夫特编写翻译器如何@objc证明证明。暗中同意意况下,编写翻译器使用对象中注明的Swift版本来实施猜想。新装置可用来明确提醒斯威夫特编译器使用斯维夫特3 斯维夫特 4推理准则。(32121595)

机动管理方案独有在已编写制定期才会保留到磁盘。那有扶助堤防已经去除或丰硕到别的方案的指标的安插的积淀。(30266825)

对此利用机关具名的靶子,xcodebuild今后能够与Apple开采人士网址进行通讯,以创办和翻新配备配置文件,签字证书和应用程序ID。要启用此表现,请选取Xcode>首要推荐项,然后在“帐户”窗格中增加你的Apple
ID,然后将-allowProvisioningUpdates标识传递到xcodebuild营造目的时。(27572834)

添加CODE_SIGN_STYLE了七个创设设置,用于将对象的签定样式替换为自动或手动使用时xcodebuild。(28077832)

已解决的主题素材

当项目开采时,Xcode能够在“项目”导航器中开创三个“苏醒的引用”组。该组包涵在目的中援用但未在项目标组树中援引的文本。假设组现身,请将各个文件移至项目中适合的数量的职位。(22924751)

将中间体文件夹的名称改动为Intermediates.noindex。那足以由此预防Spotlight对文本夹举行索引来升高创设时间。(29336306)

Xcode协助包罗Swift代码的静态库目标。使用Swift静态库的调治应用程序可能必要黄金年代组完整的营造筑工程件在原始地方。(33297067)

已知的难点

接纳新的构建系统时,不容许在运用守旧或定制地点导出数据的品类或工作区中央银行使干净的操作。(32296417)

放置代码覆盖的出品不应提交给接收集团。实践archive方案动作时,自动禁止使用代码覆盖。不推荐应用该run操作分发或提交塑造的应用程序;如若你的劳作流程涉及提交使用该run操作营造的出品,则应切换来提交操作的产物archive。该run行动是举办的默认操作xcodebuild时,-scheme与从不显然的动词,或与传递的build动词;用archive动词营造archive动作。(32870905)

新的营造系统只怕不会定义标准营造系统在开发银行shell脚本时定义的具备情形变量。如若新的营造系统不提供你的剧本使用的蒙受变量,请在

当使用新的创设系统并利用DWAEnclaveF与dSYM文件调节和测量检验新闻时,营造恐怕会在历次创设迭代时施行不必要的干活来领取dSYM,减弱塑造质量。(30668974)

缓慢解决方式:仅使用“Release”配置,使用dSYM文件启用DWA奥德赛F。

动用新的创设系统,在创设Debug和Release项指标布置之间张开切换大概会以致不必要的内容重新建立。(30924058)

对于单个文件,新营造系统尚不辅助“付加物>施行操作”子菜单的编译,剖判,预管理或组合操作。(31072405)

当使用新的营造系统时,Interface
Builder实时视图使用旧的创设系统。(31433718)

新的营造系统当下不支持选拔按需财富的品种。(31508570)

当使用新的创设系统时,恐怕不或许正确总计活动区域中报告的创设义务总的数量,而且在营造时期将持续加码。(31855141)

弃用

构建设置独立地带(SEPARATE_ST凯雷德IP)不再帮助,亦不是显得在构建设置编辑器。新新新新旗新新新旗新新旗新新旗新新旗新新旗旗新新旗新新旗新新200新新旗200新新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新200(31584192)

着力数据

新功能

在接纳斯维夫特4的花色中生成的数据模型在或许的动静下使用斯维夫特布局。使用Swift3的等级次序中生成的数据模型不改变。(27512827)

履新了模型编辑器,为Core
Data的领取索引,属性索引和实体化合物索引提供联合的界面。200新新新新新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗旗新新旗新新旗新新旗新新旗旗新新200新新新旗新新200新新旗新新200新新旗新新200新新新200新新旗新新200新新旗新新200新新旗新新200新新旗新编写翻译低于iOS
11,watchOS 4,macOS 10.13或tvOS
11的靶子的数据模型继续生成宽容的模子。(30843153)

在模型编辑器中增添了贰个标注,用于标记删除后保留的质量,以支撑不住历史记录追踪。(31204966)

日增了对模型编辑器的支撑,用于安装实体的Core
Spotlight展现名称表明式。(31619737)

日增了对模型编辑器的辅助,用于附属性,表明式和涉嫌创立提取索引。(32407895)

崩溃主办单位

新功能

若是利用由Spotlight索引的当地.dSYM选取了崩溃微型机,则会标示未签约的日记。(22550064)

已消除的主题素材

扩张了有些修复程序,以抓实崩溃微型机的安宁,可信赖性,演示品质和属性。(29500046)

调试

新功能

增多了iOS和Apple电视机的有线调节和测验。(10968305)

充实了7-UpKit和SceneKit对视觉等级次序构造调节和测验器的援助。百事可乐Kit节点显示为视图。SceneKit视图在SceneKit编辑器中开辟叁个快速照相。能够保留对编辑器所做的改换,不要退换应用程序。(29169315)

加上分配回溯到由Xcode导出或由leaks命令行工具生成的保存的内部存款和储蓄器图形文件。保存回溯须求为指标启用malloc仓库日志记录。(25399716)

已祛除的主题材料

Xcode内部存款和储蓄器调节和测验器,泄漏仪器和leaks命令行工具不应再报告与利用Swift的经过中接收弱援用相关的小型malloc块的不当的体面泄漏。(29780048)

已知的标题

抱有A7或A8计算机的设备上的GPU质量流量计不可用。(32982421)

从设备中删去有线支付配成对供给通过挑选“设置”>“常规”>“重设”>“重新载入参数网络设置”来重新苏醒设置网络设置。(31626631)

在GPU Frame
Debugger中,在帧捕获开首在此之前成立的参数编码器会形成应用程序在破获时崩溃。(32415645)

化解措施:在捕获的职业负荷中创立参数编码器,或在破获早前释放它们。

设备

已消除的标题

在“设备和模拟器”窗口的“设备”窗格中,当采纳配有石英表的魅族时,能够准确展现配对的Apple
Watch的调治将养调整台的按键。(32365458)

仪器

已知的标题

仪表不可能因此互联网提示睡眠设备。(33384362)

消除办法:手动唤醒设备或营造和平运动转应用程序。

设置Xcode后,第叁次在Simulator中运作应用程序时,内部存款和储蓄器图调节和测量检验器和仪器不展现数据。(34172871)

减轻格局:再也启航Mac。

界素不相识成器

新功能

在“大小”检查器中丰硕“布局边距”选项,以启用钦赐自定义边距。有关详细音信,请参阅将内容稳定在布局边距内。(30086042)

扩张了对iOS 11中充分的垂直基线到基线约束的援助。(30086144)

可认为其余子视图和XIB文件启用安全区域构造指南。(32956031)

Interface
Builder会在运营时在装置上显得画布上的导航栏,制表符栏和工具栏。(30983209)

要在Interface
Builder中应用新usesAutomaticRowHeights属性,请NSTableView从“尺寸”检查器中筛选“自动布局”(Auto
Layout),然后为“行中度”设置八个值。新新新200新新200新200新200新200新200新新200新200新200新200新200新200新200新200新200新200新200新200新200新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新(29511510)

将猜度行,页眉和页脚中度增加到Interface
Builder中的“尺寸”检查器。这一个属性由UIKit用于通过将估计的莫斯中国科学技术大学学设置为不为零的值来创立自定义大小的表单元格。(17995201)

应用Interface
Builder文件创造的文书使用新的平安区域构造指南,实际不是顶端和尾部构造指南。使用安全区域的节制会安顿到不辅助新的平安区域指南的iOS或tvOS版本时,将机关转换为运用顶端和底部指南。要启用现有文件中的安全区域指南,请选择视图调节器或视图,展开文件检查器,并启用使用安全区域布局指南。(29323293)

Interface
Builder允许配置列的轻重缓急调解属性UISplitViewController。(18359423)

Interface
Builder辅助textContentType对适合UITextInputTraits合同的类实行安装。在iOS
11上,那样可以提升活动填写功用,使用方便的数目(包罗顾客名和密码)填充。(25019442)

已消除的标题

当从设备配备窗格中精选风景时,Interface
Builder以后将展现状态,顶上部分和底部栏的不易中度。此外,IBDesignable视图接纳当前trait群集的正确值。(6799670)

当Vary for
Traits形式处于活动状态时,选拔“息灭限定”不分畛域置为“建议的牢笼”仅影响活动计划。(27407689)

改良了界不熟悉成器文书档案大纲视图大时辰现身的图片难题。(32137309)

将插座和操作连接到斯威夫特左券类类现在能够日常办事。(17023935)

在富有斯维夫特左券扩充的类中扬言的Outlets,actions和可检查属性现在能够符合规律职业。(22二〇〇九35)

Objective-C注释,如NS_REFINED_FOR_SWIFT不再阻止使用IBInspectable属性。(30509152)

编写翻译一个NSTableView使用Cocoa
Bindings的macOS传说板,不再会ibtool挂起。(18867270)

已知的主题素材

选择Swift图像文字内容prepareForInterfaceBuilder(State of Qatar招致IBDesignablesAgentCocoaTouch崩溃,因为实时视图是以差异的包编写翻译的。(28676479)

解决方法:选取UIImage(named:inBundle:compatibleWithTraitCollection:卡塔尔(قطر‎全数图像查找,并使用Bundle(for:
type(of: self卡塔尔State of Qatar查找实时取景类的包。

滚动浏览内容时导航栏不会压缩,如果为导航调整器的导航栏设置了Prefers
Large Title,只怕在有趣的事板上设置。(33229609)

消灭净尽办法:将以下内容增多到根视图控制器的awakeFromNib方法中:

self.navigationController?.navigationBar.prefersLargeTitles =false

self.navigationController?.navigationBar.prefersLargeTitles =true

self.navigationController.navigationBar.prefersLargeTitles = NO;

self.navigationController.navigationBar.prefersLargeTitles = YES;

弃用

界不熟悉成器不再编写翻译针对iOS
6或更早版本的对象。张开装有较旧布置指标的Interface
Builder文书档案将其改动为iOS 7及越来越高版本。(28726486)

本土化

新功能

追加了XLIFF导出和导入stringsdict文件的支撑,包含协理选取科学的每个语言的有余变体。(16785521)

日增了对UTF-8以外的编码的XLIFF导出的扶助。(18944510)

Xcode不再为不分包其本地化能源的测量检验对象导出本地化。(16813531)

已消除的标题

导出包蕴在三个对象中重新的本地化财富的本地化不再引致错误。重复的财富仅导出二遍。(一九〇一9103)

Xcode以往应用n并t在转移的字符串文件重视味着换行符和制表符。(22981479)

使用除标准换行符之外的行尾的字符串文件现在得以正确导入和导出。(30552675)

主线程检查器

新功能

增加了主线程检查器,一个新的运转时工具,能够在AppKit,UIKit和Web基特中寻找必需由主线程实行调用的API,但是在其余线程上海展览中心开调用。这一个调用应诉知为运维时难题。主线程检查器在调节和测量检验时期活动启用,何况能够在Scheme编辑器的Diagnostics选项卡中禁止使用。(29951764)

游乐场

已知的主题素材

macOS游乐场实行只怕挂起在运维情状,未有发出别的结果。那在转移页面时更是宽泛。(32429211)

杀绝办法:截至操场试行并再度运行。假诺难题依然存在,请关闭一碗水端平复展开Xcode。

该liveTouchBar财产PlaygroundSupport不被扶助。(31073754)

项目

新功能

Project
Navigator中的组今后更紧凑地与文件系统中的目录相关联。(28612132)

在品种导航器中的组之间拖动文件移动文件系统中的文件,并改善任何涉及的SCM职业别本。

当组连接到文件系统中的文件夹时,创制,重命名和删除组将更新文件系统中的相应文件和文件夹。

要去除文件系统中的组和文件夹之间的连年,请选拔组,然后张开文件检查器,然后单击消亡路线按键(X)上的。

要将文件系统中的文件或文件夹中的关联增多或更新到品种中的文件或组,请接受文件或组,张开文件检查器,然后将相应的文书或文件夹拖动到文件中的地点有个别督察。

已解决的标题

重命名文件不再引致错误警示The file has been saved by another
application。(31970242)

已知的主题素材

将文件从Finder中拖入项目恐怕会在Finder中活动或复制文件。(31042020)

消除方法:透过Command-Option创设对文本的援引,将文件拖动到项目中。

重构

已知的主题材料

经过行使修复“增加左券存根”来增加左券存根大概不会插入复杂合同的装有片段,举个例子斯维夫特.Collection。(31078629)

化解措施:运用修复开关,然后增多其富余和破绽少的左券存根。

用以局地定义类型的布局方法,比如在函数体内定义的结构,不能够被重构。(31695776)

当提取使用当地定义类型的代码片段时,提取的函数能够将该地方定义的品种用作参数,进而以致不编写翻译的代码。本地定义类型的亲自去做是在函数体中定义的枚举。(32288968)

重命名不会耳闻则诵宏扩大中找到的符号。(31989492)

重命名具有关联值的Swift枚举情形不会重命名其参数标签。(32126363)

重命名导出到Objective-C的Swift类或左券不会重命名@class在不含有生成的MODULE-Swift.h标头的源文件中动用转载注明的此外援引。(32275117)

消除措施:文件中#include生成的MODULE-Swift.h标题.m。

重命名对成员起头化程序的调用或引用不会重命名相应的分子属性。(32383812)

消除方法:从其定义或引用中手动重命名成员属性。

重命名时,撤废不起成效。(32429491)

消除办法:手动编辑新名称,或应用撤销。

签名和分发

新功能

改良分发职业流程。(29054761)

当要求新的散发具名证书时,Xcode会提醒许可。能够导出签字证书以与任何团伙成员分享。分发职业流不再辅助打消分发具名证书。当应用程序在构建存档时签订协议时,不再需求钦命几个公司。

增加了对Xcode分发方法的手动具名协助。您能够在导出或上传应用时内定手动具名资金财产。手动创立的配置文件不会被Xcode或xcodebuild。

在Xcode中,导出应用程序未来导出分发汇总属性列表文件,打包日志和导出选项属性列表文件。分发摘要属性列表文件汇报导出的应用程序的开始和结果,包涵具名音信,符号和位码设置以至嵌入内容。包日志包涵用于将归档应用程序调换为可分发打包应用程序的持有命令。

导出选项属性列表文件包涵在散发专门的学问流程中张开的全部选拔,并可将其传递到xcodebuild使用该-exportOptionsPlist标记。属性列表文件包涵新属性(signingStyle,signingCertificate,和provisioningProfiles用于钦命手动签名)。查看xcodebuild
-help协助的ExportOptions键的欧洲经济共同体列表。

追加了对xcodebuild使用-allowProvisioningUpdates和-allowProvisioningDeviceRegistration标识的自发性具名的支撑。

日增了开荒和分销签订公约流程,以达成持续整合Bots能够付出应用程序在多少个三回九转的装置上运维。对于自动签字,机器人可以登记连接的道具并立异Xcode管理的布局文件,但不可能制造分发证书。

启用方案的测验操作的代码覆盖面也使其得以用于运转操作。那将促成在运作操作所利用地方的八个操作中保留创设中间体和产物。(32079317)

增加了一个Strip 斯维夫特Symbols选项,用于控制Swift规范库中的斯威夫特符号。有关越来越多新闻,请参阅Xcode扶持中的构建和链接中的新增加效果与利益以致Strip
斯维夫特符号主旨。(31669406)

模拟器

新功能

为受协助的装备加多了面朝上和面朝下的方向。(11393667)

改革模拟器将荧屏截图保存到系统荧屏截图目录,并非一向将显示屏截图保存到桌面。(26127809)

日增了增大到从命令行运行的依葫芦画瓢设施的手艺,并关闭模拟设备窗口,而不唯有息模拟器。要使设备运维,请在闭馆窗口或退出应用程序时按住Control键,然后单击出现的对话框中的Keep
Running按键。选中该复选框,使其成为闭馆或退出时的暗中同意操作。(31004084)

增进三个分享扩张名用于将项导入模拟器:

照片和摄像被导入到设备的照片库中。

Maps.app的任务或引脚设置设备的比葫芦画瓢地点。

设置了采纳程序包。

网址在Safari中打开。

筛选具备模拟器将项目设置到全数张开的模拟器。(31150602)

经过应用硬件>音频输入和硬件>音频输出菜单,扩张了对每一种仿真设备选用macOS音频输入和输出设备的援助。要采取系统偏幸设置中挑选的Mac输入或输出设备,请从菜单中选拔系统。

选用蓝牙5.0动圈耳机也许会透过将动圈耳机置于通话模式来下滑音频品质。借使发生这种情景,请选拔其余装置。(32337249)

扩展了对Simulator运转七个冒出设备的支撑,并剔除了独立的Simulator(Watch)应用程序。(5687722)

向模拟设施增多了挡板。挡板上的按键将相应的风云发送到模拟设备。挡板扶持活动模拟设施窗口和源自显示器边缘的装置手势。点击并拖动模拟显示屏移动窗口。移动到仿照显示屏实践八个手势。(140二零一六8,31558767,32061265,32118310)

加多键盘快速键重定向到模仿设备。选用硬件>键盘>发送菜单键盘飞快键可将发送火速键切换来最前端的设备。各样设备的设置可能两样。有关详细消息,请采取赞助>模拟器扶植,并导航到与器械开展交互作用>重定向键盘连忙键。(31988219)

iOS 11及更加高版本,tvOS 11及更加高版本的修正模拟器运营时刻,沃特chOS
4及更加高版本将文件系统视为区分朗朗上口写,以更加好地模拟物理设备的一言一行。(18609452)

更新模拟器以免强实行后台奉行战术,以更连贯地合营物理设备。背景应用程序独有在合适的气象下才具施行UIBackgroundTasks,具备plist背景方式或抽出通告。(16532261)

已消除的题目

当至少有一个模拟Apple
电视机设备时,模拟器捕获与Siri远程配对的出口。当最前头的模拟设备是Apple
TV时,Siri遥控器的出口将被指向设备,不然输出将被忽略。退出模拟器将Siri遥控器的调控权再次回到给Mac。(29960775)

当运转模拟器时,如若旧版本的Simulator当前正在运作,旧版本将此外正在周转的依葫芦画瓢设施切换来较新本子,然后退出。(32384840)

已知的难点

并且运营四个模拟器大概会超越最大进度数或最大张开文件限定。当这种场馆时有发生时,开端贰个新的进度,展开三个新的模拟设施,或张开三个文书引致错误。关闭一个或多个虚假使备或关闭展开的顺序恐怕会消除难题。

macOS
10.13及越来越高版本依据可用的系统内部存款和储蓄器自动调解那个约束。那个限定是前期版本的macOS的固定值。通过利用能够扩展极限launchctl。有关详细音信,请采纳“支持”>“模拟器援救”,然后导航到“模拟器故障消释”>“能源贫乏”。(31179087)

相当慢连接开发银行许多模拟设备也许会因而采纳具备系统财富来阻拦新过程的发生。产生这种情景时可能未有警报。(31723508)

解决方法:关门模拟器窗口或退出模拟器以关闭设备以那时候过来。不用免强退出模拟器,因为它不会破产设备。有关详细消息,请选取“扶持”>“模拟器支持”,然后导航到“模拟器故障祛除”>“财富不足”。

透过拖动边框收缩One plusX模拟设备的大大小小或然会触发边缘滑动,实际不是调动装置大小。(33974533)

解决办法:率先扩展窗口大小,然后减小到所需的朗朗上口。

为参谋魅族 X选取窗口 – >缩放 –
>实际尺寸未正确安装大小。(33908038)

寸草不留办法:手动调节窗口的大大小小以科学的大大小小。

利用xcrun simctl
uninstall在模拟器中卸载应用程序会变成故障并挂起模拟器。(30586964)

解决措施:用于xcrun simctl
erase将设备重新设置为初步状态,或从设备的效仿器主显示屏中删去应用程序。

当AVPlayerViewController在One plusX模拟设备中动用时,摄像只怕会冒出在平安区域之外,并被传感器外壳或圆角遮挡。(34339660)

源代码管理

新功能

“首选项”中的“源代码管理”窗格支持配置Git作者音讯,Git忽视文件列表和SVN忽视文件列表。(10544339)

在“首选项”中更新了“帐户”窗格,以支撑与GitHub的三合后生可畏。作为此更新的一片段,在旧版本的Xcode中增多的仓库储存库已不复可用。使用“源代码管理”>“克隆”访谈存款和储蓄库。在Xcode中登记的GitHub和GitHub
Enterprise帐户的积存库出以后仿制窗口中。可以透过输入存款和储蓄库URubiconL访谈其余存储库。(30191609)

在首荐项中,加多了将“双重身份验证”和“GitHub”帐户的SSH密钥配置到“帐户”窗格的帮忙。实践源代码管理操作时利用凭据。(28775680)

增添了三个与GitHub直接集成的仿制窗口,向你出示全数帐户的最爱,私人,个人和集体资料库。每种存款和储蓄库呈现元数据,项目自述文件和创办存款和储蓄库的本土克隆的选项。(30960520)

增加了八个新的Source
Control导航器,用于查看项目或职业区中的专业别本。导航器列出了分段,标签和遥控器以致推拉计数。(29054970)

导航器中的上下文菜单包罗以下职能:

创立分支和标签。

配置遥控器。

签出修改装订号。

统一分支之间的转变。

增加了三个历史记录编辑器,用于查看分支或标签的生机勃勃体化历史记录。各样提交包罗作者,提交注释以致作为提交的一片段的其他分支或标签。单击源调控导航器中的分支或标记以展现历史记录。(29054970)

加多了三个评价文件编辑器来显示在付出中对文件所做的变动。(29054970)

加多了二个源代码管理检查器来彰显提交的更加多细节。(29054970)

校订Xcode以活动获取远程追踪分支,在等级次序导航器中标志更新的文件,并在“源代码处理”导航器中显得推拉计数。(31839384)

githum.com在网络浏览器中的存款和储蓄库中增加了对二遍性克隆到Xcode的支撑。(32294826)

已知的难题

进行某个源代码调节操作(举个例子推动)时,历史记录视图中可能不会展现最新更新。(33919614)

减轻形式:张开历史记录视图,接受编辑器>刷新历史记录。

应用除Xcode之外的工具删除在Xcode中增添的GitHub帐户的钥匙串凭据可预防Xcode显示身份验证错误。(33898250)

杀鸡取蛋办法:除去Xcode中的GitHub帐户,然后增加它。

弃用

Subversion集成在今后的版本上校被放弃。(33041913)

源代码编辑器

新功能

Command-plus(+)和Command-minus( –
)今后加多和减少源编辑器中字体的分寸。(21423189)

在所选文本中键入先导分隔符就要接收截止时增加二个优越的关门分隔符。自动相称的相间符包含双引号(”),括号(“(”和“卡塔尔国”),方括号([和])和大括号({和})。(29164633)

注脚和撤回注释作用现在能够平常扶持支持嵌套块注释的言语,比方斯维夫特,甚至别的不扶助嵌入块注释的语言,举个例子C。这将变成更确切的笺注和打消注释。(32194040)

已知的难点

应用VoiceOver将连接从Interface
Builder拖到源编辑器有的时候不可能创建连接。(33壹玖玖零23)

消除办法:扬言IBAction或IBOutlet在源代码编辑器中,然后将三回九转从源代码编辑器拖到Interface
Builder。

迅速

新功能

革新Xcode以支撑Swift 4.0和斯维夫特3.2。语言情势由斯威夫特语言版本创设设置调整。那三种语言形式是应用相似的编写翻译器和标准库完成的,它能够使用斯维夫特3将对象使用Swift3与目的展开延续,进而在大多数场馆下,能够在对象对象上完结从Swift3.2搬迁到Swift 4底蕴。

虽说Swift 3.2和斯威夫特 4.0目的在于协作,但它们访谈Cocoa和Cocoa Touch
API的差异也许会产生不一致,那或然限定了使用另多少个版本创设的客商端指标能够行使一个本子创设的库。最广泛的主题素材是缺乏类型的分子;在某个情状下,客商端大概会被明确命令幸免对特定类进行子类化或利用有个别合同。

斯维夫特 3.2和Swift 4.0不支持与3.2事情发生在此之前版本的斯维夫特编写翻译的靶子链接。

像以后同生机勃勃,即便编译器或SourceKit崩溃,请提交三个错误报告,附上您的项目和源。假若你在类型中混杂斯威夫特3和斯威夫特 4,请在主题材料呈报中谈起。(31104045)

在改过变量时对其张开第叁次访谈是多个谬误。那样的拜候导致程序猿和编写翻译器难以精晓的代码。日常的话,您供给重新排列代码(例如,通过创建地点别本)来防守冲突的拜访。

比方说,以下代码尝试从变量数组中读取时,该sort(State of Qatar方法正在进展变异。

vararray:[Int] = …

发表评论

电子邮件地址不会被公开。 必填项已用*标注