Xcode 26 新特性
在 WWDC25 上 Apple 推出了 Xcode 26,相比较 Xcode 16,它有如下的变化。
界面

项目
- 安装包更小,其他组件与工具链只有在需要时才会下载。
- 设置界面重新设计,菜单从顶部挪到了左侧,其中 Accounts 改名为 Apple Accounts ,Text Editing 改名为 Editing ,Key Bindings 改名为 Shortcuts ,同时增加了菜单 Notifications。
- 模拟器运行时默认不再包含对 Intel 的支持。
- 改进了编辑器标签页(command + T)的行为,使其更加直观,便于搜索与钉住。
- 编辑区的搜索功能新增了 "Multiple Words" 模式。
功能
-
Xcode 支持 ChatGPT 等 LLM 服务(其他服务商需要提供 API 密钥)与本地 LLM,开发者可以直接使用它们辅助编码、测试,修错等工作。通过 Xcode 菜单 ---> Xcode ---> Settings... ---> Intelligence 可以进行详细设置,调用时左下角会出现对话窗口。但该功能要求操作系统为 macOS 26 及以上。
-
通过 Voice Control(语音控制)可以控制 Xcode 界面的导航与 Swift 代码的编写。
-
内置了 Icon Composer 应用,能够创建
.icon
的设计文件,可以让开发者与设计师创建符合 "Liquid Glass" 风格的 App Icon。 -
增加
#Playground
宏,可以像#Preview
一样预览非 UI 代码的运行结果,甚至可以像 Debug 模式一样查看中间变量的值。swiftimport Playgrounds #Playground { let num1 = 3 let num2 = 5 let sum = num1 + num2 }
-
增加
#bundle
宏,可以访问当前 Target 的 Bundle 资源,输出的值等价于Bundle.main
。 -
String Catalog
进一步增强,在每个 Key 的下方增加了一个可以修改的符号,这些符号可以在代码中自动补全,同时可以自动生成描述字符串上下文的注释。 -
UI Tests 自动化录制显著增强,可以一边进行交互,一边自动记录代码。
-
文本输入性能得到优化,打字延迟率大大降低。
-
内容加载性能得到大幅优化,加载工作区快了 40 %。
iOS 26 适配指南
同样在 WWDC25 上 Apple 发布了 iOS 26,推出了很多新的内容。在掌握了基于 iOS 18 开发的基础上,只要学习以下的新特性就能轻松过渡到 iOS 26。
-
新增 @Observable Object。
- UIKit 支持
@Observable
类型。当数据发生更改时,视图可以自动更新,而无需手动调用setNeedsLayout()
、setNeedsDisplay()
等方法。 - 使用前提:需要将 UI 更新的代码放在
layoutSubviews()
、viewWillLayoutSubviews()
方法中。 - 该功能可以支持到 iOS 18,但需要在 Info.plist 文件中增加字段
UIObservationTrackingEnabled
,并且将其值设置为YES
。
- UIKit 支持
-
新增 Update Properties。
- UIViewController 与 UIView 均增加了一个名为
updateProperties()
的新方法,用于更新 UI。 - 它是一种轻量级的 UI 更新方式,不会触发完整的布局过程(不会触发
layoutSubviews()
或者viewWillLayoutSubviews()
方法)。常见使用场景如下。- 更改标签或者徽章等 UI 内容。
- 显示/隐藏元素。
- 无需移动或者调整视图大小。
- 可以通过调用
setNeedsUpdateProperties()
方法手动触发更新。 - 可以自动追踪 @Observable Object。
- UIViewController 与 UIView 均增加了一个名为
-
UIImage 使用 SF Symbols 7 可以实现更流畅、更实用的 UI 动画。
-
UIView 动画引入了一种新的选项
flushUpdates
,它可以自动根据视图数据或者约束的更改添加动画效果,而无需手动调用layoutIfNeeded()
方法。 -
通知使用更安全,不再需要通过
userInfo
携带数据。 -
iPadOS 中的 UISplitViewController 支持 3 列显示。
swiftlet splitViewController = UISplitViewController(style: .tripleColumn) splitViewController.setViewController(MasterViewController(), for: .primary) // 主列表 splitViewController.setViewController(DetailsViewController(), for: .supplementary) // 所选项目详情 splitViewController.setViewController(InspectorViewController(), for: .secondary) // 额外信息
-
iPadOS App 默认拥有类似 macOS 风格的菜单栏,通过从屏幕顶部向下滑动调出,支持添加自定义菜单。
-
通过引入 UIHonstingSceneDelegate,UIKit 可以启动 SwiftUI 场景,包括 visionOS 上的沉浸式体验。同时也可以通过编程的方式打开 SwiftUI 场景。
-
所有 App 必须使用 UIScene 生命周期,不再允许只使用 AppDelegate。
-
UIKit 支持显示 HDR(高动态范围)颜色 ,而不仅仅是 HDR 图像。
-
通过颜色选择器可以选择 HDR 颜色。
-
通过改进的 UIApplication/UIScene 的
open()
方法,可以将不受支持的类型文件交给其他 App 打开。
注:以上内容基于 Xcode 26 Beta,新特性均通过测试,详细内容会以专题文章的形式陆续展示。