Xcode26新特性与iOS26适配指南

Xcode 26 新特性

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

界面

项目

  1. 安装包更小,其他组件与工具链只有在需要时才会下载。
  2. 设置界面重新设计,菜单从顶部挪到了左侧,其中 Accounts 改名为 Apple AccountsText Editing 改名为 EditingKey Bindings 改名为 Shortcuts ,同时增加了菜单 Notifications
  3. 模拟器运行时默认不再包含对 Intel 的支持。
  4. 改进了编辑器标签页(command + T)的行为,使其更加直观,便于搜索与钉住。
  5. 编辑区的搜索功能新增了 "Multiple Words" 模式。

功能

  1. Xcode 支持 ChatGPT 等 LLM 服务(其他服务商需要提供 API 密钥)与本地 LLM,开发者可以直接使用它们辅助编码、测试,修错等工作。通过 Xcode 菜单 ---> Xcode ---> Settings... ---> Intelligence 可以进行详细设置,调用时左下角会出现对话窗口。但该功能要求操作系统为 macOS 26 及以上。

  2. 通过 Voice Control(语音控制)可以控制 Xcode 界面的导航与 Swift 代码的编写。

  3. 内置了 Icon Composer 应用,能够创建.icon的设计文件,可以让开发者与设计师创建符合 "Liquid Glass" 风格的 App Icon。

  4. 增加#Playground宏,可以像#Preview一样预览非 UI 代码的运行结果,甚至可以像 Debug 模式一样查看中间变量的值。

    swift 复制代码
    import Playgrounds
    
    #Playground {
        let num1 = 3
        let num2 = 5
        let sum = num1 + num2
    }
  5. 增加#bundle宏,可以访问当前 Target 的 Bundle 资源,输出的值等价于Bundle.main

  6. String Catalog进一步增强,在每个 Key 的下方增加了一个可以修改的符号,这些符号可以在代码中自动补全,同时可以自动生成描述字符串上下文的注释。

  7. UI Tests 自动化录制显著增强,可以一边进行交互,一边自动记录代码。

  8. 文本输入性能得到优化,打字延迟率大大降低。

  9. 内容加载性能得到大幅优化,加载工作区快了 40 %。

iOS 26 适配指南

同样在 WWDC25 上 Apple 发布了 iOS 26,推出了很多新的内容。在掌握了基于 iOS 18 开发的基础上,只要学习以下的新特性就能轻松过渡到 iOS 26。

  1. 新增 @Observable Object。

    • UIKit 支持@Observable类型。当数据发生更改时,视图可以自动更新,而无需手动调用setNeedsLayout()setNeedsDisplay()等方法。
    • 使用前提:需要将 UI 更新的代码放在layoutSubviews()viewWillLayoutSubviews()方法中。
    • 该功能可以支持到 iOS 18,但需要在 Info.plist 文件中增加字段UIObservationTrackingEnabled,并且将其值设置为YES
  2. 新增 Update Properties。

    • UIViewController 与 UIView 均增加了一个名为updateProperties()的新方法,用于更新 UI。
    • 它是一种轻量级的 UI 更新方式,不会触发完整的布局过程(不会触发layoutSubviews()或者viewWillLayoutSubviews()方法)。常见使用场景如下。
      • 更改标签或者徽章等 UI 内容。
      • 显示/隐藏元素。
      • 无需移动或者调整视图大小。
    • 可以通过调用setNeedsUpdateProperties()方法手动触发更新。
    • 可以自动追踪 @Observable Object。
  3. UIImage 使用 SF Symbols 7 可以实现更流畅、更实用的 UI 动画。

  4. UIView 动画引入了一种新的选项flushUpdates,它可以自动根据视图数据或者约束的更改添加动画效果,而无需手动调用layoutIfNeeded()方法。

  5. 通知使用更安全,不再需要通过userInfo携带数据。

  6. iPadOS 中的 UISplitViewController 支持 3 列显示。

    swift 复制代码
    let splitViewController = UISplitViewController(style: .tripleColumn)
    splitViewController.setViewController(MasterViewController(), for: .primary) // 主列表
    splitViewController.setViewController(DetailsViewController(), for: .supplementary) // 所选项目详情
    splitViewController.setViewController(InspectorViewController(), for: .secondary) // 额外信息
  7. iPadOS App 默认拥有类似 macOS 风格的菜单栏,通过从屏幕顶部向下滑动调出,支持添加自定义菜单。

  8. 通过引入 UIHonstingSceneDelegate,UIKit 可以启动 SwiftUI 场景,包括 visionOS 上的沉浸式体验。同时也可以通过编程的方式打开 SwiftUI 场景。

  9. 所有 App 必须使用 UIScene 生命周期,不再允许只使用 AppDelegate。

  10. UIKit 支持显示 HDR(高动态范围)颜色 ,而不仅仅是 HDR 图像。

  11. 通过颜色选择器可以选择 HDR 颜色。

  12. 通过改进的 UIApplication/UIScene 的open()方法,可以将不受支持的类型文件交给其他 App 打开。

:以上内容基于 Xcode 26 Beta,新特性均通过测试,详细内容会以专题文章的形式陆续展示。

相关推荐
与火星的孩子对话11 小时前
Unity进阶课程【六】Android、ios、Pad 终端设备打包局域网IP调试、USB调试、性能检测、控制台打印日志等、C#
android·unity·ios·c#·ip
小溪彼岸15 小时前
【XCode】Copilot for XCode AI编程助手
xcode
恋猫de小郭1 天前
Flutter Widget Preview 功能已合并到 master,提前在体验毛坯的预览支持
android·flutter·ios
点金石游戏出海2 天前
每周资讯 | Krafton斥资750亿日元收购日本动画公司ADK;《崩坏:星穹铁道》新版本首日登顶iOS畅销榜
游戏·ios·业界资讯·apple·崩坏星穹铁道
旷世奇才李先生2 天前
Swift 安装使用教程
开发语言·ios·swift
90后的晨仔2 天前
Xcode16报错: SDK does not contain 'libarclite' at the path '/Applicati
ios
finger244802 天前
谈一谈iOS线程管理
ios·objective-c
Digitally2 天前
如何将大型视频文件从 iPhone 传输到 PC
ios·iphone
梅名智2 天前
IOS 蓝牙连接
macos·ios·cocoa
美狐美颜sdk2 天前
跨平台直播美颜SDK集成实录:Android/iOS如何适配贴纸功能
android·人工智能·ios·架构·音视频·美颜sdk·第三方美颜sdk