iPhone Duo 兼容机制(苹果开发者官方文档)

  iPhone Duo 运行 iOS 27,所有 iOS App 默认都可以直接运行,不需要重新编译;兼容效果取决于该应用编译时绑定的 iOS SDK 版本,系统自动提供不同层级的兼容回退方案,核心依靠 Size Class(尺寸类别)、Scene 窗口体系、Pose(折叠姿态)通知 实现跨屏、开合切换适配。

  1. 按SDK版本划分的三级兼容表现

  1. iOS 26 SDK及更早(未适配)

      内外屏均走兼容模式;展开内屏时App居中显示,四周留黑边;闭合在外屏时内容靠左排布,避开状态栏与摄像头区域,不会自动铺满大屏。

  2. iOS 27 SDK

      开合时App自动跟随设备折叠动态调整大小、切换内外屏;内屏可以铺满大部分区域,但右侧保留状态栏预留区域,无法贴边显示。

  3. iOS 27.1 SDK(原生优化)

      支持全屏延展,导航栏、标签栏会自动转为垂直布局,适配折叠屏侧边状态栏形态;是苹果推荐的目标适配版本。

  重点:不会自动启用iPad模式,不会把App强制当成iPad应用运行;布局判断不应该依赖设备类型(phone/pad),而必须基于 Size Class 和可用空间。内屏展开后宽、高都为 Regular 尺寸类别,和iPad尺寸类别一致,但设备ID依然是iPhone。

  2. 多窗口 / 分屏兼容(Split View + Scene API)

  • 内屏支持多Scene实例,同一个App可以同时打开多个独立窗口,类似iPad分屏;开发者使用标准窗口Scene API即可接入,外屏不支持多窗口分屏。
  • SceneAccessories API:支持内外屏同时独立渲染不同内容(双屏协同场景,例如内屏取景、外屏提词、预览),两个屏幕各自独立的UI协调器,独立管理摄像头方向、视图方向。
  • 系统在折叠/展开、翻转设备时发送姿态变更回调(viewWillTransition),App需要监听窗口尺寸变化,禁止硬编码屏幕宽高、固定方向判断布局(不能依赖 UIDevice.orientation)。

  3. 布局适配核心规则

  • 用 Size Class(UITraitCollection) 替代方向判断;内屏展开为 Regular + Regular,外屏闭合是常规iPhone紧凑尺寸;
  • 禁止直接读取 UIScreen.main.bounds 获取屏幕尺寸,改为从当前window、view的bounds、GeometryReader获取可用区域;
  • 新增 ReservedRegion 预留区域API,用来避开系统UI、铰链、状态栏区域,防止内容被裁切遮挡。

  4. 硬件与外设兼容

  • SIM:仅双eSIM,完全不兼容实体nano‑SIM卡
  • 配件:支持 Apple Pencil(USB‑C),USB‑C接口兼容标准USB‑C外设、充电、传输;
  • 无线:N1芯片,Wi‑Fi7、蓝牙6、Thread,沿用iPhone蓝牙、AirDrop、Handoff原有兼容体系。

  5. 测试兼容工具

  Xcode 27.1 内置 iPhone Duo 模拟器,Device Hub 可以模拟折叠、翻转、尺寸变化;也可以通过 iPhone Mirroring 在macOS上拖动窗口大小测试弹性布局。