适配工作,并不复杂,具体代码因涉及业务逻辑,就不粘贴了,大家用 AI coding下也可。
一、苹果官方时限与强制要求
1.1 核心截止日期
⏰ 关键日期:2026 年 4 月 28 日。所有新提交和更新包必须使用 iOS 26 SDK 构建,没有宽限期。
| 截止日期 | 要求内容 | 影响范围 |
|---|---|---|
| 2026-04-28 | iOS / iPadOS 应用必须使用 iOS 26 SDK 构建 | 所有新提交和更新包 ✅ |
| 2026-04-28 | tvOS 应用必须使用 tvOS 26 SDK 构建 | 所有新提交和更新包 ✅ |
| 2026-04-28 | watchOS 应用必须使用 watchOS 26 SDK 构建 | 所有新提交和更新包 ✅ |
| Xcode 27 发布前 | Liquid Glass 完整适配,UIDesignRequiresCompatibility失效 | 过渡选项被强制移除 ✅ |
| Xcode 27 发布前 | UIScene 生命周期迁移(UIKit 应用) | 强制,不迁移将无法启动 ✅ |
Xcode 27 预期在 2026 年 9 月份发布。
1.2 苹果原文(Apple Developer 官方)
Starting April 28, 2026, apps and games uploaded to App Store Connect
need to meet the following minimum requirements:
• iOS and iPadOS apps must be built with the iOS 26 & iPadOS 26 SDK or later
• tvOS apps must be built with the tvOS 26 SDK or later
• visionOS apps must be built with the visionOS 26 SDK or later
• watchOS apps must be built with the watchOS 26 SDK or later
— Apple Developer News, developer.apple.com/news/?id=ueeok6yw
1.3 常见误解说明
| 误解 | 正确理解 |
|---|---|
| 必须把 Deployment Target 改为 iOS 26 | ❌ 错误。iOS 16 Deployment Target 完全不需要修改 |
| 用 iOS 26 SDK 构建后用户必须升级到 iOS 26 | ❌ 错误。运行系统要求由 Deployment Target 决定 |
| 所有 APP 立即显示 Liquid Glass | ⚠️ 默认开启,但可用 UIDesignRequiresCompatibility 临时关闭 |
| 现有上架版本会被下架 | ❌ 错误。仅影响新提交和更新包,现有已上线版本不受影响 |
| 有宽限期 | ❌ 错误。苹果明确表示没有宽限期 |
二、构建环境强制要求
2.1 工具链要求
| 工具 | 最低版本 | 说明 |
|---|---|---|
| Xcode | 26.0+(推荐 26.3) | 必须使用 Xcode 26 才能构建 iOS 26 SDK |
| macOS | Sequoia 15.3+ | Xcode 26 对 macOS 版本有要求 |
| iOS SDK | 26.3(当前最新) | Xcode 26 自带,无需单独安装 |
| Swift | 6.0(可选) | Swift 5 仍受支持,不强制升级 |
三、Liquid Glass 适配要求
3.1 什么是 Liquid Glass
Liquid Glass 是 iOS 26 全新的设计语言,融合了玻璃的光学特性(折射、反射)与液态动效,是苹果自 iOS 7 以来最大规模的视觉系统重构。
| 特性 | 说明 |
|---|---|
| 自动适配 | 使用标准 UIKit / SwiftUI 控件的 APP,用 iOS 26 SDK 编译后自动应用 Liquid Glass 效果 |
| 默认开启 | 无需任何代码修改,原生控件(NavigationBar、TabBar 等)自动获得新外观 |
| 可临时关闭 | 通过 UIDesignRequiresCompatibility = YES 临时退出(仅 Xcode 26 有效) |
| Xcode 27 强制 | 过渡选项将在 Xcode 27 中被移除,届时 Liquid Glass 成为强制要求 |
自动适配的系统控件(无需改代码)
- UITabBar / UITabBarController
- UINavigationBar / UINavigationController
- keyboard
- UIToolbar
- UIAlertController / UIActionSheet
- UIButton、UISlider、UISwitch、UISegmentedControl
- UIScrollView(
allowsLiquidTransform默认开启) - SwiftUI 所有标准组件
3.2 Liquid Glass 效果图
3.2.1 TabBar Liquid Glass效果
3.2.2 UINavigationBar Liquid Glass 效果
导航栏按钮效果与现有布局不协调,屏蔽系统样式,使用线上的旧效果
3.2.3 键盘样式变化
因系统键盘变动,带有毛玻璃折射效果,自带圆角和阴影效果,为了视觉上柔和些,在底部添加了白色到灰色的渐变色区域。
3.2.4 系统弹窗 & 自定义弹窗 Liquid Glass效果
自定义弹窗也可使用系统的Liquid Glass效果,因设计,开发,测试成本,暂不调整。
3.3 需要手动适配的场景
| 场景 | 问题 | 解决方案 |
|---|---|---|
| 自定义 NavigationBar 背景 | 旧 API 与 Liquid Glass 冲突导致新 API 失效 | 改用 UINavigationBarAppearance |
| 自定义弹窗 / Sheet | 固定白色背景与系统风格不一致 | 使用 UIGlassEffect / UIVisualEffectView |
| UIBarButtonItem 样式 | 按钮自动共享 Liquid Glass 背景 | 设置 hidesSharedBackground = true |
| CAGradientLayer 渐变视图 | 固定颜色视觉割裂感 | 可选:调整为渐变融合系统材质 |
四、UIScene 生命周期迁移
苹果宣布:使用最新 SDK 构建的 UIKit 应用,在 Xcode 27 版本之后必须采用 UIScene 生命周期,否则无法启动。
⚠️ 高优先级:虽然 Xcode 26 暂时不强制,但这是Xcode 27的硬性要求。项目中如果还在使用 AppDelegate window 模式,需要提前迁移到 SceneDelegate。
<!-- Info.plist 添加 Scene 配置 -->
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<false/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>Default Configuration</string>
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
</dict>
</array>
</dict>
</dict>
// SceneDelegate.swift
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene,
willConnectTo session: UISceneSession,
options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = scene as? UIWindowScene else { return }
window = UIWindow(windowScene: windowScene)
window?.rootViewController = MainTabBarController()
window?.makeKeyAndVisible()
}
}
五、App Icon 适配要求
5.1 新图标规范
iOS 26 引入多图层图标系统,支持 6 种模式,系统会对老图标自动尝试分层:
| 模式 | 说明 | 适配优先级 |
|---|---|---|
| Default(默认) | 标准浅色模式,现有图标自动兼容 | ✅ 已有 |
| Dark(深色) | 深色背景下的图标变体 | 🟡 建议补充 |
| Clear Light(透明浅色) | 透明背景浅色变体 | 🟢 可选 |
| Clear Dark(透明深色) | 透明背景深色变体 | 🟢 可选 |
| Tinted Light(着色浅色) | 系统色调浅色变体 | 🟡 建议补充 |
| Tinted Dark(着色深色) | 系统色调深色变体 | 🟡 建议补充 |
5.2 是否强制重建图标
不强制。苹果会自动分析现有图标并生成分层版本,层次清晰的图标(背景 + 前景)系统自动分层效果较好。
六、第三方库兼容性处理
| 三方库 | iOS 26 兼容性 | 操作建议 |
|---|---|---|
| DoraemonKit | ❌ 获取window失败 | 在 AppDelegate 做兼容处理 |
| RxSwift 6.5.0 | ⚠️ Main Actor 警告较多 | 已升级到6.9.0,待升级到 6.9.1 ~6.10.2 修复并发崩溃 |
七、回归测试清单
7.1 Liquid Glass 效果图 (全部页面)
- TabBar 正常显示 ,切换 tab 交互效果流畅
- 导航栏样式不变,返回按钮展示和交互,无异常
- 首页导入文档,粘贴长文本,弹起键盘后样式无异常
7.1 UIScene 生命周期迁移
🚀 启动流程
- 冷启动正常显示 TabBar
- 隐私协议弹窗正常弹出
- 同意协议后 SDK 正常初始化
- 已安装过的用户跳过协议直接进入
🔗 跳转与路由
- 微信登录正常
- QQ 登录正常
- 苹果登录正常
- 作品正常分享到微信,后点击返回AiPPT,正常
- 作品正常分享到朋友圈,后点击返回AiPPT,正常
- 作品正常分享到QQ,后点击返回AiPPT,正常
- Universal Link 跳转正常(分享PPT作品,手机浏览器打开,点击打开APP)
- 自定义 Scheme 路由正常