一、版本阐明
XCode 15 beta 公布于 2023 年 6月5日, 可反对 macOS 13.3 或以上版本, 你能够按需下载须要的平台。
二、新增个性
1.代码智能提醒 (Code completion)
- 创立新的文件在援用时的提醒
首先创立一个新的文件
而后,在援用的中央,输出文件首字母会立刻自动弹出补全提醒。
- 函数调用时列出所有可能的参数排列
在没有提醒的状况下,调用函数时如何传参往往是比拟艰难的,不晓得能够传哪些参数, 当初 XCode 将列出所有可供选择的可能,你能够更轻松找到适合的参数列表并抉择它。
- 主动剖析代码上下文,并给出最合适的倡议。
例如在 Text 组件调用中,输出"点号" 后,在弹出的提醒列表中的最上方会提醒 font (此时 Text 还没设置 font ),这是因为XCode剖析了上下文,“辨认出” 这是一个 Text, 并且此时还没有设置过字体,你可能须要它,因而将字体放在倡议的最上方。
2.资产文件作为变量援用 (Asset catalogs)
过来资产文件如图片是以 “字符串” 作为图片名称在代码中被援用,当初间接通过相似变量的标识符去援用它,它能够承受编译时的查看。
- 资产援用的编译查看
批改资产的名称为 “MultipleClouds ” 后,援用处产生了编译谬误
这是因为此前资产的名称是 "clouds", 当初,编译器提醒你批改它为 "MultipleClouds"。
- 代码中援用图片资产的智能举荐
编辑资产的名称时,能够取得XCode 的智能举荐。
3.本地化资源集中管理 (Localization)
- 旧我的项目的本地化文件迁徙
XCode 设置中 抉择 Edit > Convert to string catalog, 此时 XCode 会主动扫描工程中的 storyboards、.strings、 以及 .stringsdict 类型的文件。并将其列在下图所示的列表中,你能够依据须要抉择局部或全副文件进行迁徙。
迁徙实现后,所有的本地化翻译将被整合到一个 Localization 目录中,你还能够查看到不同语言翻译的进度。
- 追踪代码中的字符串变动
每次构建时,XCode 会主动提取代码中的所有字符串。当增加新字符串或删除某个字符串时,本地化目录会标记出受影响的中央,并给出 “古老” 和 “新增” 的标记进行凸显,从而提醒你去翻译或者删除它。
4.文档 (Documentation)
- 新的文档卡片款式
- 文档小助手
抉择小助手,而后抉择文档预览。
右边是代码,左边能够看到对应的文档,你能够实时编辑和预览,这看起来有点像 MD。
5.新增 Swift 宏 (Swift macros)
零碎局部框架曾经实现了宏,如 Swift standard library、foundation、 以及一个新的 Swift data framework.
- 创立宏包 (macro package)
应用快捷键 Command-Shift-A, 而后在弹出的输入框中输出 New package 能够疾速创立一个带有样例代码的宏包,你能够批改并实现它。
而后抉择 Swift Macro
以下是一个曾经实现的宏包 EnumHelper,而CaseDetection 被实现为一个宏,宏的代码和个别的 swfit 代码没什么大的区别。
以下是援用了宏包 EnumHelper 中的宏 @CaseDetection,它默认会暗藏了宏实现,
- 开展宏和断点调试
当你须要时,你能够抉择开展宏,通过 Editor > Expand Macro 能够开展它。
开展后,还能够应用断点,如下图所示:
6.运行时预览 (Previews)
- 基于宏疾速创立一个预览实例
应用宏 #Preview 疾速创立一个预览实例, 在右侧边栏能够看到预览成果。
以下持续增加了一个带名称的预览实例,当有多个预览实例时,能够在右侧边栏的左上角切换tab 预览对应实例。
- AppKit 及UIKit 的预览反对
为了兼容非SwiftUI 的代码,可反对对旧工程的 Appkit 及 UIKit 增加预览。
- Widget 预览反对
7.书签性能 (Bookmark)
- 增加书签
你可能常常会遇到遗记此前关注或应用的一些重要代码,在你想要找到之前的那些代码时,你发现没有方法疾速找到它。当初,通过增加可命名的书签来标记他们。
增加实现后,书签被展现在右边栏的书签tab下。
- 书签分组
你能够将多个书签打包成一个组,作为有关联性的代码。
你也能够设置一个组名,便于搜寻和了解。
- 设置为代办或实现
你能够将书签作为工作来治理,比方你能够将书签设置为实现状态,它将会在左侧显示一个对勾。
8.代码版本控制 (Source Control Navigation)
- 版本控制面板
在新的面板中,所有的版本改变将集中在一个文件中一起预览,通过高低滑动能够看到多个文件的批改内容,从而防止来回切换批改的文件。
批改的预览是可交互的,你能够通过操作来扩充预览区域,从而查看以后批改处的更多上下文。
除了预览,你还能够间接在以后界面下持续编辑,编辑实现后,能够提交 commit,而后push。
可通过左侧的竖条批改状态。
小结:代码批改的预览、编辑、提交、推送都在同一页面下,缩小不必要的界面切换,操作更便捷。
9.测试 (Testing)
- 测试面板
Apple 对新的测试面板应用Swift 进行了重写,提速了45%,下图案例列出了测试计划中的测试用例。
- 查看测试后果
测试后果的整体统计信息看起来简明扼要,次要包含:
Top Insights: 分析测试后果,给出一些问题剖析的倡议,包含谬误的起因、散布、最耗时的测试用例。
Tests: 展现测试用的统计数据,包例成功率,按机型、语言分类,以及谬误列表。
- 可交互的测试用例回放
测试用例的详情信息能够被查看,它展现了自动化的测试步骤,以及标出产生谬误的节点,你能够通过以上信息来帮忙找出问题的起因。
10.调试 (Debugging)
- 控制台引入 OSLog 的反对
OSLog 可用来很好的捕捉运行时信息。它可定义及收集结构化的日志信息,使日志看起来东倒西歪,接下来让咱们看看如何应用它。
首先,应用 OSLog 编写一段日志:
默认状况下,日志的元信息是被暗藏的,仅显示开发者输出的日志信息,控制台中对不同重大水平(如 info、 notice 、error 等)的日志,标记为不同的色彩以示辨别。
你能够选择性的增加展现日志的分类,包含子系统类别等元信息。
还能够过滤不同重大程序的日志。
最初,咱们能够通过操作某条日志,跳转到日志代码定义处。
11.散发 (Distributing)
- 新增 TestFlight 包的备注信息
你能够给 TestFlight 的包增加一些从属的备注信息,例如须要测试哪些内容的阐明,这些信息会被展现给获取 TF包的测试者。
- 查看框架签名
XCode 引入了XCFrameWork 能够对签名的框架进行验签,从而显示其起源,并保障其完整性不被毁坏,从而建设框架的信赖机制。
- 隐衷清单
框架作者能够给本人的框架增加隐衷清单,来阐明隐衷的应用状况和如何爱护敏感数据。隐衷清单会与框架捆绑一起签名,因而,隐衷清单是可被信赖的。
来看看下图所示的隐衷清单:
你能够应用XCode能够生成和查看残缺的隐衷报告
- TestFlight 仅散发到内部测试
当修复问题时,你不心愿测试包被实在用户看见,这时你能够通过勾选 “仅分发给内部测试” 而后只分发给本人公司或团队的测试者 ,这样能够避免被误发给共测用户。
以下是另外一个操作内部测试的门路
三、总结
XCode15 在开发效率和性能、平安晋升上次要体现为以下概括的内容:
更简洁: 次要体现在宏、文档、和日志上。
更智能: 晋升主动补全代码能力、晋升测试剖析能力。
更便捷: 包拆分下载、代码补全、书签、git集中管理,本地化集中管理。
更平安: 图片资产符号化治理, 通过对框架和隐衷的解决,使得代码更加平安。
作者:京东批发 王晰源
起源:京东云开发者社区