如何适配 iPhone Duo:现有 App 的改造与验证步骤
适配现有 App 时,先运行并记录内外屏的真实体验,修正对屏幕尺寸的固定假设,再验证同一个任务能否在切换后继续。本文给出改造顺序与每一步的通过条件,可配合 Apple 的准备讲座使用。下面的评审流程和优先级是我们的实践建议。
1. 先在 Duo 模拟器建立现状基线
Apple 的准备讲座使用 Xcode 27.1 和 Device Hub 模拟开合、旋转与折叠,并区分旧应用的兼容布局与使用新 SDK 构建后的屏幕、控件行为。
改代码前,记录当前构建,选一个短流程:打开收藏条目、编辑内容、返回列表。使用容易辨认的示例数据,分别保留外屏和内屏画面。将问题拆开记录:布局被截断、操作消失、选中项变化、草稿丢失。这样才能判断后续修改是否真正改善体验。
2. 排查固定屏幕尺寸与方向判断
先检查决定根布局、内容宽度和图像缩放的代码。Apple 建议使用 size class 以及当前视图或场景的环境;在双屏设备上,全局主屏幕的假设可能不再适用。
找到下表中的代码后,先确认这个值承担什么职责。渲染倍率、容器宽度与导航模式是不同决策,不应统一替换成一个常量。修改后同时检查窄窗口与完整内屏。
| 检查位置 | 需要回答的问题 |
|---|---|
| UIScreen.main | 应该取当前窗口场景,还是当前显示倍率? |
| 固定内容宽度 | 能否使用所在容器的可用范围? |
| 横竖屏条件分支 | 实际判断的是物理方向,还是可用空间? |
| 手机 / 平板分支 | 常规宽度的 iPhone 能否显示适当内容? |
| 假定左右边距相等 | 每一侧是否使用了自己的安全区域值? |
3. 先处理导航容器,再微调单个页面
沿应用入口追踪到选中条目,明确什么是主要内容、什么是辅助上下文。先在容器层解决关系,再处理具体页面里的局部偏移。
以列表和详情应用为例,可以把通过条件定为:布局变化后仍选中同一条目,返回或关闭仍进入预期位置。也要从该条目打开弹窗与溢出菜单,验证后续操作。宽屏画面看起来完整,并不代表所有入口都可达。
4. 检查安全区域、折叠与摄像头附近的自定义 UI
优先检查手动定位的控件、自定义图表、画布工具与覆盖层。Apple 布局讲座区分了会分割空间的折叠区域和会遮挡内容的摄像头区域,并说明区域是否激活会影响当前可用空间。
标出完成任务必须触达的控件。发生冲突时,先调整最小且有意义的一组内容,再重复操作,并将前后画面与修改原因放在一起。按“内容是否不可读、操作是否不可达”排序,不必把每个居中装饰都视为阻塞问题。
5. 验证跨屏以后仍然是同一个任务
留下少量容易辨认的未保存编辑,依次打开、闭合、旋转并返回。每一步核对选中项、草稿、导航位置和正在执行的操作。播放器或计时器应先定义产品承诺的连续行为,再按这个行为判断是否通过。
发现问题后,从相同起点复现,定位状态在哪里被重建或重置,修正后重跑原始步骤。重启应用进入正确画面可以辅助定位,但不能证明切换过程正常。
- 当前对象仍可辨认。
- 草稿修改没有丢失。
- 主要操作仍然可达。
- 任务没有意外重新开始。
6. 补测最容易暴露问题的组合
主流程通过后,再加入长翻译、大字体、键盘显示和 Split View。每次挑一种条件,与应用重要的最紧凑状态组合测试。优先覆盖自定义布局或包含关键完成操作的页面。
将结果保留为简短的发布检查表。“已适配 Duo”太笼统,应记录构建、流程、屏幕状态和示例内容。无法使用的设备或模拟器状态标为未测,让下一位审核者看清还缺什么。
| 场景 | 通过条件 |
|---|---|
| 外屏 → 内屏 → 外屏 | 选中项和草稿保持一致 |
| 旋转与部分折叠 | 重要内容可读、操作可用 |
| Split View | 导航与完成操作仍可达 |
| 长标签与大字体 | 仍能识别命令含义 |
| 键盘、弹窗或菜单 | 仍可完成或取消当前流程 |
7. 捕获适配后的真实界面,准备商店素材
流程通过后,分别捕获真实外屏与内屏界面,将原图与构建、语言信息一起保存。如果截图要对照两种屏幕,尽量保留同一示例条目,再为每张图写一个简短、具体的用户价值。
按尺寸指南选择导出目标,按设计指南安排整套构图。上架工坊可以添加文案并导出精确尺寸 PNG,但不会改造上传图片里的 App 布局,也不能替代兼容性验证。交付前要打开实际导出文件检查。
常见问题
现有 App 如何开始适配 iPhone Duo?
先让一个可重复流程经过内外屏并记录问题,再排查固定屏幕假设,依次修正导航、自定义布局与状态问题,为每个通过条件保留证据。
是否要为 iPhone Duo 重做每个页面?
先检查现有应用及其布局容器,修正阻碍任务或空间利用的问题。需要重新组织宽屏内容层级时,再参考设计指南。
导出 Duo 截图尺寸就代表适配了吗?
不代表。导出尺寸验证的是图片,应用适配还要检查真实界面、导航、控件与状态切换。
Flutter 等跨平台应用能用这份清单吗?
流程与通过条件可以参考,但本文的 SDK 和 API 来源描述的是原生 iOS。选择具体改法前,应核对所用框架当前的 iOS 支持。