共计 3109 个字符,预计需要花费 8 分钟才能阅读完成。
一、版本阐明
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 集中管理,本地化集中管理。
更平安 :图片资产符号化治理,通过对框架和隐衷的解决,使得代码更加平安。
作者:京东批发 王晰源
起源:京东云开发者社区