面向开发者的 iPhone Duo:1.42 的难题与 SDK 空窗期
iPhone Duo 给 iOS 开发者带来了什么改变? 两块显示屏,形状是此前任何一台 iPhone 都不曾有过的;手机上首次出现 Split View 与双窗口多任务;在面向房间的屏幕上运行的 StandBy;用 Touch ID 取代 Face ID;以及 10月23日 随 iOS 27.1 发售。iOS 27 与 Xcode 27 的发行说明都没有提到这台设备,无论是 9月9日 的候选发布版还是 9月14日 的正式版。Apple 的开发者页面把 Xcode 27.1 beta 和应用适配指南的时间标注为「本月晚些时候」;设计指南则在同一天下午进入了「人机界面指南」,六场 Tech Talks 也已上线,规则随之明确:应用无需重新编译即可在这台设备上运行,只有 iOS 27.1 SDK 才能延伸到屏幕边缘,而内屏在两个维度上都报告 regular 尺寸类别。145131419 规格表给出数字,演讲给出规则。
Apple 于 2026年9月9日 发布 iPhone Duo,并在同一天放出了它的技术规格。12 面向开发者的内容,起步时比面向消费者的单薄得多:一句话讲 SDK 与 Device Hub,一句话讲已经完成适配的第三方应用,然后就是距离发售的六周。到当天下午稍早时候,Apple 补上了一个开发者页面和六场 Tech Talks,太平洋时间下午 4:10 又补上了设计指南,而 SDK beta 与适配指南仍未到位。131416 正是这段空窗期,让人有理由现在就把账算清楚,而不是坐等一份示例工程。
太长不看: App Store Connect 在主题演讲当天下午公布的内屏截图尺寸是 2007 × 2853 像素,按 3 倍缩放即 669 × 951 点,而面板本身是 1878 × 2670。我的推断是:内屏以 669 × 951 渲染,再在每个维度上缩小约 6.4%,与当年的 Plus 机型做法一致;具体仍待 Device Hub 确认。宽高比为 1.42,接近 A 系列纸张的根号二比例。217 外屏是 1398 × 2034 像素,按 3 倍缩放即 466 × 678 点,不做额外缩放;它比 iPhone 18 Pro 更宽,同时短了五分之一还多。2317 规则由 Apple 的 Tech Talks 给出。未使用 iOS 27 SDK 构建的应用,在设备展开时以熟悉的尺寸运行;iOS 27 SDK 会把它扩展到状态栏左侧;只有 iOS 27.1 SDK 才能触及屏幕边缘。内屏在两个方向上都报告 regular 尺寸类别。在 iPad 上支持多实例的应用,在这里同样支持,但新窗口仅限内屏;相机拍摄配件则可以把 UI 放到外屏,而应用主体留在内屏。14 StandBy 在任一块屏幕上都能运行,「即便没有在充电」。1 这台设备使用 Touch ID,因此任何「使用 Face ID」的文案在它上面都是错的。2
更新,9月10日:App Store Connect 暗示内屏为 669 × 951 点
本文的第一版把规格表上的 1878 × 2670 像素除以 3,得出内屏为 626 × 890 点。App Store Connect 的截图规格里有一行 iPhone Duo:按 App Store Connect 的发行说明,该行于 9月9日 添加,Apple 的发布动态给它盖上的时间戳是太平洋时间下午 3:00,而我是在 9月10日 上午第一次看到它——外屏 1398 × 2034 像素,内屏 2007 × 2853 像素。应用预览规格在「Device resolutions」这一标题下列出了同样的两个尺寸,为 5.5 英寸的 Plus 机型区分了「Rendered pixels」与「Physical pixels」(2208 × 1242 对 1920 × 1080),并注明上传 iPhone Duo 素材「将于今年晚些时候提供」;Apple 已于2026年10月5日开放这些上传(10月7日更正)。17 外屏尺寸按 3 倍缩放恰好是 466 × 678 点,正是面板自身的像素。内屏尺寸按 3 倍缩放为 669 × 951 点,每个维度都比面板实际拥有的多出约 6.9%。在 3 倍缩放这一前提下,我的推断是:内屏以 669 × 951 点渲染,再把结果在每个维度上缩小约 6.4%,落到 1878 × 2670;Device Hub 会予以确认或纠正。App Store Connect 对这种安排早有先例:5.5 英寸 Plus 机型的面板是 1080 × 1920,而它至今仍要求提交 1242 × 2208 的截图,Apple 的指南也把这些机型列为在 1080 × 1920 面板上以 3 倍缩放呈现的 414 × 736 点。1117 Apple 的另一件产物指向同一结论:Apple 放在「设计资源」页面上的 iPhone Duo 产品外框素材包里,内屏的屏幕挖空区是 3093 × 2247 外框内的 2853 × 2007 像素,与 App Store Connect 的尺寸像素级吻合,而它的外屏挖空区宽度就是面板的 1398 像素。18 下文的换算已全部更正为 669 × 951。宽高比、尺寸类别、SDK 规则和物理尺寸都不变;变的是点数宽度、黑边数值,以及需要在 Device Hub 里测试的尺寸。如果这一推断成立,有一个推论值得留意:在 430 ppi 的面板上横跨 669 点,单个点的物理大小与外屏相同,两者都约为每英寸 153 点,因此设备展开时,文字与控件的物理尺寸保持不变。
更新,9月15日:Xcode 27 发布了,但没有 Duo SDK
Apple 的发布订阅源在 9月14日(周一)列出了 Xcode 27(27A266a)、iOS 27.0(24A437)以及其余 27.0 系统,但两份正式版发行说明都没有提到这台设备:9月15日 通过 Apple 文档 JSON 获取的 iOS 与 iPadOS 27 说明和 Xcode 27 说明中,「Duo」一次都没有出现,Xcode 发行说明索引也仍然只有一条 27 条目。19 Apple 的开发者页面与 9月9日 一字不差:「Xcode 27.1 beta. Get the latest SDKs to build, run, and test your app for iPhone Duo. Coming later this month」,「Preparing your app for iPhone Duo」同样是「Coming later this month」,Group Labs 与问答仍在 9 月的既定日期。19 App Store Connect 9月9日 的那句话当时也没有变:「Support for uploading assets for iPhone Duo in App Store Connect will be available later this year.」Apple 已于2026年10月5日开放这些上传(10月7日更正)。17 所以下面的日程当时依然成立,只是其中一个日期已成过去。iOS 27 已经发布,今天决定可调整尺寸行为的是 Xcode 27 里的 27.0 SDK,而专属于 Duo 的 SDK 仍在前方(10月11日:它已于9月18日随 Xcode 27.1 beta 发布,而自10月5日起,App Store Connect 接受用 Xcode 27.1 RC(27A9275)和 iOS 27.1 SDK 构建的版本上架 App Store2223);正式版工具链给既有项目带来了哪些变化,见Xcode 27 发布文章。
更新,9月17日:Apple 的发行说明点名了承载 Duo SDK 的版本
随 9月16日 的 beta 浪潮一同发布的 Xcode 27.2 beta 发行说明,是 Apple 第一份把这个 SDK 落到具体版本上的发行说明:「The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1.」(面向 iPhone Duo 的 iOS SDK 与模拟器支持将于本月晚些时候随即将发布的 Xcode 27.1 提供)20 27.2 beta 本身,即 Xcode 27.2 beta(27B5019j)与 iOS 27.2 beta(24B5084k),不含任何 Duo 内容:这个词在 Xcode 27.2 beta 说明中只出现一次,就在 Overview 的那一句里,在 iOS 与 iPadOS 27.2 beta 说明中一次也没有出现,而 Xcode 说明的 Device Hub 一节列出的两条已知问题讲的是模拟器输入与硬件键盘,没有点名任何设备。20 Apple 的 iPhone Duo 开发者页面仍把「Xcode 27.1 beta」列在 Tools and documentation 之下,标注为「Coming later this month」,但该页面上有一块卡片在我 9月15日 与 9月17日 的两次取回之间变了:「Preparing your app for iPhone Duo」不再显示「Coming later this month」,而是链接到了 Technology Overviews 之下一份已上线的指南。20
这份指南同样点名了版本,而且点了两次:「Build your app with Xcode 27.1 or later to use all of the available screen space on iPhone Duo. In earlier versions, your app doesn’t extend under the status bar and camera.」(用 Xcode 27.1 或更高版本构建应用,才能使用 iPhone Duo 上全部可用的屏幕空间;在更早的版本中,应用不会延伸到状态栏和摄像头之下)以及「The iPhone Duo simulator in Device Hub requires Xcode 27.1, coming later this month.」(Device Hub 中的 iPhone Duo 模拟器需要 Xcode 27.1,本月晚些时候推出)20 它没有给出点数尺寸,所以上文推算出的显示屏数字仍然只是推断;它补上的是 API。排布视图(SwiftUI 中的 ArrangementView,UIKit 中的 UIArrangementViewController)以 split 或 overlay 两种样式,围绕折痕布置一个主视图和一个次视图;保留区域(GeometryProxy 上的 reservedRegions(kind:options:layoutDirectionBehavior:),UIView 上的 reservedRegions(kind:options:))把折痕和摄像头以分割与遮挡的形式暴露出来;竖栏则在 SwiftUI 中得到 toolbarVerticalBehavior(_:)、toolbarVerticalEdge 和 axisBehavior(_:),在 UIKit 中得到 preferredVerticalBarBehavior、verticalBarEdge 和 axisBehavior。20 这 10 个名称,没有一个出现在 Xcode 27 附带的 iOS 27.0 SDK 里,无论是 SwiftUI 的模块接口还是 UIKit 的头文件;而指南里的其他名称都已经在那里了:presentationPlacement(_:) 与 preferredPlacement 在 27.0,visibilityPriority 在两个框架中都是 27.0,ToolbarOverflowMenu 与 topBarPinnedTrailing 在 27.0,pinnedTrailingGroup 与 additionalOverflowItems 自 iOS 16 起,backgroundExtensionEffect() 自 iOS 26 起,并配有 UIBackgroundExtensionView。21 所以,这份指南描述的是一个尚未发布的 27.1 SDK,而 10月23日 搭载 iOS 27.1 发售的日期与 SDK 空窗期,都依然如前文所写。(9月19日:beta已于9月18日发布;见下面的更新。)
更新,9月19日:27.1 beta已发布,Duo API有了版本号
Xcode 27.1 beta(27A9269)于9月18日星期五登上Apple的Releases信息源,比点名它的那一波27.2 beta晚两天;其说明开头就是本文一直等待的SDK句子:“Xcode 27.1 beta includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27.”(Xcode 27.1 beta包含Swift 6.4以及iOS 27.1、iPadOS 27、tvOS 27、watchOS 27、macOS 27和visionOS 27的SDK)22 在我9月17日与9月19日两次抓取之间,Apple还改写了27.2 beta说明的Overview:上文更新中引用的那句已经不见,现在是一条提示:“Download Xcode 27.1 beta to get the iOS SDK and simulator support for iPhone Duo.”(下载Xcode 27.1 beta以获取iPhone Duo的iOS SDK和模拟器支持)22 截至9月19日,ArrangementView、UIArrangementViewController、GeometryProxy上的reservedRegions(kind:options:layoutDirectionBehavior:)、UIView上的reservedRegions(kind:options:)以及toolbarVerticalBehavior(_:)的Apple文档页面,也就是9月17日检查时在27.0 SDK中找不到的十个名称中的五个,都把可用性列为iOS 27.1和iPadOS 27.1,标记为beta。22 版本问题由此从Apple一侧得到了回答;beta的SDK是否包含全部十个名称、模拟器如何处理它们,则要等装好beta之后在下一篇文章里检查。App Store Connect同日开始接收相应构建:“You can now submit apps built with Xcode 27.1 beta using the SDK for iOS 27.1 beta or iPadOS 27.1 beta for internal and external testing.”(现在可以提交用Xcode 27.1 beta、以iOS 27.1 beta或iPadOS 27.1 beta SDK构建的应用,用于内部和外部测试)22Overview的“iPadOS 27”与App Store Connect的“iPadOS 27.1 beta”并不一致,我两者照录,而不从中择一。
beta说明也写明了Duo模拟器目前还做不到的事,见Simulator,Known Issues:“Initial Simulator launch can take several minutes.”(模拟器首次启动可能需要几分钟)(187708500)、“StandBy is unavailable in the iPhone Duo Simulator runtime.”(iPhone Duo模拟器运行时不提供待机显示)(187708663)和“Running and debugging most app extensions is unavailable in the iPhone Duo Simulator runtime.”(iPhone Duo模拟器运行时无法运行和调试大多数App Extension)(187708767);因此下文描述的待机显示行为目前只能在真机上测试,按Apple的措辞,大多数App Extension也是如此。22 同一份说明里的两个Mac Catalyst已知问题,关系到任何要在同时上架Mac的应用中采用这些API的人:“Projects that use APIs specific to iOS 27.1 show compile errors when building for Mac Catalyst (“undeclared identifier”, “not found”, “has no member”, “cannot find”, etc).”(使用iOS 27.1专有API的项目在为Mac Catalyst构建时会出现编译错误)(185924957),Apple给出的解决办法是#if !targetEnvironment(macCatalyst);以及“Projects that target iOS 27.1 show no Mac Catalyst run destination available.”(以iOS 27.1为目标的项目不显示任何Mac Catalyst运行目标)(187046347),解决办法是“Add a Mac Catalyst 27.0 minimum deployment in target settings.”(在目标设置中添加Mac Catalyst 27.0最低部署版本)。22 Apple的“Preparing your app for iPhone Duo”指南在同样两次抓取之间也变了。上文引用的段落“Build your app with Xcode 27.1 or later to use all of the available screen space on iPhone Duo. In earlier versions, your app doesn’t extend under the status bar and camera.”现在写作“Build your app with the latest version of Xcode to use all of the available screen space on iPhone Duo. When you build with Xcode 26 and earlier, your app doesn’t extend under the status bar and camera.”(用最新版Xcode构建应用,才能用满iPhone Duo的全部屏幕空间;用Xcode 26及更早版本构建时,应用不会延伸到状态栏和摄像头之下),而注释“The iPhone Duo simulator in Device Hub requires Xcode 27.1, coming later this month.”已被删除。开发者页面上,“Xcode 27.1 beta”卡片的“Coming later this month”变成了“View betas”;9月18日的新闻“Build for iPhone Duo with new resources”则在Apple Design Resources中新增了iPhone Duo的Figma和Sketch设计套件。22
Apple 已经发布了什么,又没有发布什么
新闻稿留给开发者的只有两句话。Apple 自家的应用「都针对 iPhone Duo 做了优化,而开发者可以借助最新 SDK 中新增和更新的 API,以及 Xcode 的 Device Hub 中即将到来的 iPhone Duo 支持,轻松地让自己的应用完成适配」。然后是:「包括 Netflix、Zoom 和 Slack 在内的第三方应用,已经在利用这种折叠设计打造沉浸式体验,把更大的显示屏和使用 iPhone Duo 的新方式发挥到极致」。1
关键词是「upcoming」。iOS 与 iPadOS 27 的 RC 发行说明在 9月9日 取回时标题仍是 RC——那一天 App Store Connect 开始接受以 RC SDK 构建的应用19——其中没有任何关于 iPhone Duo 的内容。Xcode 27 的 RC 说明同样只字未提,尽管它详细描述了 Device Hub,包括本站可调整尺寸 iPhone 时代检查清单所依赖的缩放模式。45 Apple 的文档索引里也找不到 iPhone Duo 页面。Apple 表示这台设备随 iOS 27.1 出厂,而 Apple 的开发者页面如今坐实了这段等待的形状:「Xcode 27.1 beta」被描述为「为 iPhone Duo 构建、运行并测试你的应用」的途径,标注为「coming later this month」,一份名为「Preparing your app for iPhone Duo」的指南同样如此。设计指南「Designing for iPhone Duo」在下午 1:12 时还写着「coming soon」,到太平洋时间下午 4:10 已经出现在「人机界面指南」中;它的规则见设计指南一节。1316(9月17日:这份指南已上线;见上文更新。20)
Apple 在第一天为开发者发布了什么
Get Ready for iPhone Duo 页面在主题演讲当天上线;Apple 宣布它的开发者新闻帖标注的时间是太平洋时间上午 11:00,那时演讲还在进行。13 页面链接了六场现已可看的 Tech Talks:「Prepare your app for iPhone Duo」,其简介承诺演示「如何选择加入全屏体验」;「Raise the bar with iPhone Duo」,讲导航、工具栏与标签栏;「Strike a pose with adaptive layouts on iPhone Duo」,讲「位移设计模式」;关于多显示屏与场景的那一场,讲「多窗口与多显示屏体验」与「动态窗口尺寸」;「Build a great camera experience for iPhone Duo」,其中点名了一个「Virtual Front Camera」;以及「Design for iPhone Duo」。14 新闻稿没有给出的规则,都在这些演讲的英文字幕轨里,本文引用时会附上时间码。
页面还安排了人。线上 Group Labs 定于太平洋时间 9月16日 晚 8:00 与 9月17日 上午 8:00,关于「照片与相机」、SwiftUI 和 UIKit 的开发者论坛问答定于 9月23日,线下工作坊则是「coming later this month」。13 第一场演讲开头的一分钟,就是分三档的兼容性策略。UI Frameworks 团队的 David Jackson 在 0:29 处说:「即便你没有用 iOS 27 SDK 构建,你的应用也能在 iPhone Duo 上运行」;合上时,「你的应用会用上状态栏与摄像头左侧的屏幕空间」,展开时,「你的应用会保持熟悉的尺寸和宽高比」。使用 iOS 27 SDK 之后,「你的应用会在内屏上扩展到状态栏区域的左侧」(0:57)。只有「当你用 iOS 27.1 SDK 构建应用时,你的应用才会延伸到屏幕边缘」,而且「标准的导航栏与工具栏按钮如今会在状态栏下方纵向排布」(1:05 至 1:11)。随后演讲指向 Xcode 27.1 及其 Device Hub 中的 iPhone Duo 模拟器,界面上有「屏幕底部用于展开、合上、旋转或折叠 iPhone Duo 的控制按钮」(1:16 至 1:25);开发者页面把这个版本的 Xcode 定在本月晚些时候。1314
在 SDK 发布之前,规格表、那六场演讲和设计指南就是全部文档。(9月19日:Xcode 27.1 beta已带来该SDK;见上面的更新。22)(10月11日:Xcode 27.1 RC(27A9275)随后于10月5日发布,App Store Connect 接受用它构建的版本上架 App Store。23)第一场演讲如下:
9月11日更新。 Apple 的 iOS 27 RC 发行说明新增了一节「硬件安全」,其中把搭载 A20 Pro 或更新芯片的 iPhone 机型(iPhone Duo 也在其中)列入支持 arm64e.x1 切片与 CPA2 受检指针算术的设备之列。这个切片今天就已经在 Xcode 27 RC 里了;arm64e.x1:Apple 的受检指针算术切片讲解了编译器会生成什么,以及开启强制检查的那四个开关。
设计指南补上了什么(太平洋时间下午 4 点)
Apple 的 Designing for iPhone Duo 页面在主题演讲当天下午进入了「人机界面指南」;它的更新日志条目日期为 2026年9月9日,内容是「新页面」。16 这是一份设计文档,它为 Tech Talks 所描述的那套布局机制起了名字。
姿态。 人们握持这台设备的方式包括「像书一样部分折叠、平放在表面上,或者立在边缘上」,而 Apple 给出的答案并不是「一种姿态配一套布局」:「为外屏准备一套 compact width 布局,为内屏准备一套 regular width 布局,你就有了应对所有姿态的基础」。16 这正是第一场 Tech Talk 里的尺寸类别规则,换成设计指引重说了一遍。
保留区域。 该页面定义了三块内容需要避开的区域。外屏一角的外置相机区域「始终存在,并且会在出现 Live Activities 时扩展进灵动岛」。内置相机的区域「只有在相机处于工作状态时才存在」,而且「相机启用时,UI 会让开,以提示相机的存在」。第三块是折痕:「设备部分展开时,折叠区域会把内屏划分成多个可用区域,并随着屏幕折叠排除掉正中间的那一块」。16 Apple 表示「提醒、上下文菜单和 sheet 这类组件会自动移动,以适应折痕」,要求网格布局「优先采用偶数列,好让内容能干净地划分」,并称「保留区域 API 提供了一种把内容从保留区域挪开的方式」。页面没有为这些 API 链接任何文档;它给出的开发者链接是工具栏可见性优先级与溢出菜单类型、bar button item 及其分组、split view、stack、Label 和安全区域内边距——也就是说,保留区域与排布相关的 API 仍要等 27.1 beta 交付。16
排布视图。 这是一种新的容器,它「在内部容纳两个视图」,并且「根据显示屏尺寸、方向和保留区域动态地组织它们」,分为两种类型:split 排布——「当排布的宽大于高时水平分栏,当排布的高大于宽时垂直分栏」;以及 overlay 排布——「当屏幕部分折叠时,两个视图会各自移到一侧;否则主视图会叠放在次视图之上」。Apple 把现有布局一一对应过来:并排的 stack 变成 split 排布,层叠的 ZStack 变成 overlay,并补充道:「排布视图负责布局内容,但不处理导航,因此请把导航分栏视图、标签视图这类导航容器放在它外面,而不是里面」。16
纵向控件。 工具栏、标签栏和导航控件在每一种姿态下都会移到侧边,唯一的例外是「纵向的内屏,它有足够的纵向空间来保留标准的横向栏」。在 Split View 中,「每个应用都会把控件放在自己的外侧边缘,因此左边的应用把控件放在左侧」。排序规则是:「把纵向轴线的顶部留给 Back 或 Close 这类主要导航控件,其后是 Done 这类醒目操作」。溢出项默认「从下往上」排列,若要改变,可为每一项设置可见性优先级,也就是页面链接的 ToolbarItemVisibilityPriority 与 UIBarButtonItemVisibilityPriority 类型。「带文字的标签会留在横向栏中,因此只要符号能胜任,就优先使用符号」。16
方向与游戏。 「你可以选择锁定为纵向或横向,但一定要在设备姿态变化时填满屏幕」。对游戏则是:「在游戏中,宁可改变宽高比,也不要用上下或左右黑边;如果无法避免上下或左右黑边,请在填充区域加入美术素材,让体验更接近全屏」。16 这正是下文那个 16:9 难题,只不过是从设计一侧给出的答案。对这份指南及其三场配套演讲——位移、排布与纵向轴线——的设计解读,见《为 iPhone Duo 而设计》。
两块显示屏,以点为单位

取自 Apple 2026年9月9日 发布会直播,太平洋时间上午 10:58:折叠机身上的转轴与后置相机。
Apple 的规格表公布的是像素分辨率与像素密度;App Store Connect 的截图规格(在主题演讲之后一天放出)公布的是截图尺寸,而两者在内屏上并不一致。217 下表把截图尺寸除以 3,这个倍率取自 Apple 指南中对 iPhone 17 Pro 上同样的 1206 × 2622 面板给出的 402 × 874 点。11 在 Device Hub 给出实测之前,请把「点」的那几列视为由 Apple 的数字推算出的结果,而不是规格。
| 显示屏 | 面板像素 | 像素密度 | 截图像素(App Store Connect) | 3 倍缩放下的点数 | 宽高比 |
|---|---|---|---|---|---|
| iPhone Duo 内屏(7.6 英寸) | 1878 × 2670 | 430 ppi | 2007 × 2853 | 669 × 951 | 1.42 |
| iPhone Duo 外屏(5.4 英寸) | 1398 × 2034 | 460 ppi | 1398 × 2034 | 466 × 678 | 1.45 |
| iPhone 18 Pro(6.3 英寸) | 1206 × 2622 | 460 ppi | 1206 × 2622 | 402 × 874 | 2.17 |
| iPhone 18 Pro Max(6.9 英寸) | 1320 × 2868 | 460 ppi | 1320 × 2868 | 440 × 956 | 2.17 |
这张表里有两件事值得注意。内屏不是一台更大的手机。竖持时宽 669 点,比竖持的 iPhone 18 Pro Max 宽 229 点;横持时又比任何一台横持的 iPhone 都高。它 1.42 的比例,与 Pro 系列的 2.17 相去甚远。外屏也不是一台小手机。它比 iPhone 18 Pro 宽 64 点、短 196 点,这个形状在任何已上市的 iPhone 上都不存在。
Apple 的新闻稿补上了表格藏起来的事实:「两块显示屏的宽高比相同,因此内容会按比例缩放,确保视觉上的连贯性」。1 按像素算是 1.42 与 1.45,相差约 2%,因此为内屏构图的一张图片或一帧视频,放到外屏上只会多出一条极窄的余量。布局则是另一回事,因为两块屏幕报告的尺寸类别不同:外屏和其他所有 iPhone 竖持时一样是 compact 宽度,内屏则在两个维度上都是 regular——这一点在尺寸类别一节中会展开。第一场 Tech Talk 描述了这对 split view 的影响:「iPhone Duo 合上时,各栏会折叠成单栈导航。展开时,各栏会以平铺和覆盖两种形式出现」(5:19)。14 这两种形状对 iPhone 来说都是新的;但对你的代码而言,它们只是同一个宽高比下的两种尺寸类别。
Apple 给出的尺寸确定了默认的握持方式。展开时,设备宽 6.48 英寸、高 4.64 英寸,因此内屏的自然方向是宽 951 点、高 669 点;合上时宽 3.31 英寸、高 4.64 英寸,因此外屏是竖向。展开状态下厚 0.21 英寸,重 8.96 盎司。2 Apple 还把「灵动岛」挪到了两块屏幕的侧边纵向排列,并把 Dock、锁定屏幕控件和应用导航一并推到侧边,「以最大化内容的纵向空间」。1 所以要把前缘与后缘安全区域内边距的不对称考虑进去:第一场 Tech Talk 说「竖栏会带来前缘与后缘的内边距」,并提醒「不要假定两侧的内边距相等」(6:18、7:24)。14 任何假定灵动岛位于顶部的视图,在这里都会出错。
1.42 的难题,与 1.42 的馈赠
1.42 的宽高比与根号二之间只差约 0.5%,而根号二正是 A 系列纸张的比例——对折之后仍保持同样的比例。Hacker News 讨论串里一条较早的顶层评论注意到了这一点,这也是理解这台设备的好角度:把内屏对折,你会得到两块形状相同的面板。9
对 16:9 视频来说,这个比例是要付出代价的。横持时,内屏上 16:9 画面的限制因素是 951 点的宽度,于是它以 951 × 535 点呈现,上下合计留下 134 点的黑边,屏幕有五分之一闲置。横持的 iPhone 18 Pro 上,同一画面的限制因素是 402 点的高度,于是它以 715 × 402 点呈现。换算成物理尺寸(依据 Apple 给出的像素密度),Duo 上的画面宽 6.21 英寸,Pro 上是 4.66 英寸,面积多出约 77%,同时伴随着无法避免的黑边。23 视频应用同时得到了更大的画面和更宽的黑边。
而对一切不是视频的内容来说,这个比例就是馈赠。文档、信息流、邮件、代码和双栏布局,正是 A 系列纸张存在的理由。主题演讲展示的恰恰是这些布局:一条信息会话与一封邮件并排、一个杂志跨页,以及铺满内屏的团队聊天应用;Apple 的新闻稿则点名了 Slack、与其他内容并排的 Siri 对话,以及两个应用并排的 Split View。1 发布会记录按时间码逐帧记下了演讲画面。在 compact 宽度的 iPhone 布局中会折叠的 NavigationSplitView,在 Duo 的 regular 宽度内屏上可以以平铺或覆盖的方式显示多栏——下一节会讲到这一点。
尺寸类别:内屏在两个方向上都是 regular
第一场 Tech Talk 给出了具体取值。「在外屏上,和其他 iPhone 机型一样,iPhone Duo 在竖持时是 regular 纵向尺寸类别加 compact 横向尺寸类别,横持时两个方向都是 compact 尺寸类别」(3:08)。「在内屏上,多出来的空间让你可以展示更多内容,比如侧边栏。因此,它在横向和纵向上都是 regular 尺寸类别」(3:20)。14 作为参照,Apple 尺寸类别表中的每一台 iPad 在竖持时都报告 regular 宽度,连表里那台 768 点的 iPad mini 也不例外;因此 669 点的内屏归入的是 iPad 那一列,而不是 iPhone 那一列。11
同一场演讲还关上了两扇门。「内屏不会理会你声明的支持界面方向。和 Idiom 一样,请避免通过检查界面方向来做布局判断。改用尺寸类别」(3:46 至 3:55),以及「在一台拥有两块显示屏的设备上,请避免在代码中引用主屏幕」(3:57)。14 稳妥的写法是从 environment 读取 horizontalSizeClass,在 UIKit 中则读取 trait collection,并据此布局。8 这也是检查清单中的一步:它用尺寸类别取代方向判断,因为 iOS 27 已经把方向与可调整尺寸解耦。
多任务登陆 iPhone

取自 Apple 2026年9月9日 发布会直播,太平洋时间上午 11:09:两半机身各有一块电池,主板上是 A20 Pro。
Apple 的新闻稿列出了两个应用并排的 Split View——「iPhone 上尚属首次」、同一应用的两个窗口——「就像 Safari 那样」,以及可保存的应用组合。1 关于多显示屏与场景的那场演讲确认了背后的机制:「iPhone Duo 是第一台支持你的应用 UI 多实例的 iPhone。如果你的应用在 iPad 上支持这一点,它在 iPhone Duo 上同样支持」(3:38)。14 在 iPad 上,这项支持依赖 scene manifest 中的 UIApplicationSupportsMultipleScenes 键,以及通过 UIWindowScene 实现的场景生命周期;因此,为了省去跨窗口同步状态而把该键设为 false 的 iPhone 应用,应当准备重新考虑这个决定。7 这里还有一条 Duo 专属规则:「在 iPhone Duo 的外屏上无法创建新窗口。这一行为仅保留给内屏」,所以「请确保在请求新场景时处理好错误」,而 UIWindowSceneActivation 动作会「在无法打开新窗口时自动隐藏」(3:53 至 4:11)。14
同一场演讲还带来了场景配件,它们「让你的应用可以同时在多块显示屏上展示内容」,其中有一个是 Duo 专属的:「CameraCaptureAccessory 让你可以把额外的 UI 配到外屏上,同时你的应用主 UI 留在内屏」,可用条件是「你的应用在内屏上处于全屏状态,并且应用有一个处于活动状态的相机会话」(4:26 至 5:19)。14 基于场景的生命周期本身也不再是可选项:iOS 27 的 RC 说明写明「用最新 SDK 构建的应用必须采用基于场景的生命周期,否则将无法启动」,这正是场景生命周期强制要求一文的主题。47
两个应用的 Split View 是系统的活儿,不是你的活儿,但它会在运行途中丢给你的应用一个任意宽度。连续可调整尺寸(检查清单的主题)决定了你的应用是持续收到这些尺寸变化,还是只在拖拽结束时一次性跳到新尺寸;Apple 的说明写道,对于不支持连续调整的应用,每一次尺寸变化「应当改为以离散变化的形式送达」,并附带更新后的 bounds。4 判据是你链接的 SDK,以及 UIRequiresFullScreen 的缺席:用 iOS 27 SDK 构建,并且不写这个键,那么这串尺寸变化就归你处理。Apple 关于这个已弃用键的技术说明给出了另一条分支:在 iOS 27 SDK 下,该键「不再让你的应用退出尺寸调整」,取而代之的是「系统会离散地调整你的应用场景的尺寸」,因此「拖拽窗口的过程中,场景不会改变尺寸」。12 演讲补上了 Duo 特有的细节:「iPhone Duo 会继续尊重 UI requires full screen 这个键,但有人展开或合上 iPhone Duo 时,你的应用仍会改变尺寸」,并且它「会尊重你声明的支持界面方向,但你的应用会在内屏上缩放,包括在 Split View 多任务中」(4:36 至 4:49)。14
外屏上的 StandBy 是一块小组件版面

取自 Apple 2026年9月9日 发布会直播,太平洋时间上午 11:05:Apple 为 StandBy 展示的帐篷式姿态。
Apple 的新闻稿称 StandBy 在任一块屏幕上都能运行,「即便没有在充电」,并带来了新的「日历」与「天气」样式,以及更深入的自定义。1 一台支在桌上的折叠手机,就是一块面向房间的屏幕,而 StandBy 会用小组件把它填满。应用出现在那里的方式只有两种:小组件与「实时活动」;Apple 的指南把 StandBy 列在「实时活动」会出现的位置之中。15 两者都没有的应用,就从这块版面上消失了。小组件版面一文论证了一个 App Intent 可以供给所有投放位置;iPhone Duo 又添了一个始终在视野内的位置。
外屏上的相机功能——Duo Preview、Kid Cue 和 Duo FaceTime——都是系统功能。1 按相机那场演讲的说法,第三方相机应用能拿到两样东西。其一是「Virtual Front Camera」,一种「会在外侧与内侧物理摄像头之间自动切换的全新 AV Capture 设备」:设备展开时使用内屏的前置相机,合上时使用外屏的那一个;如需直接访问,还有「built-in outer ultrawide」与「built-in inner ultrawide」两种设备类型(1:14 至 2:04)。其二是场景那场演讲里的 CameraCaptureAccessory,它把你的 UI 放到外屏,同时让拍摄在内屏上进行;用那场演讲的话说,「这让你可以在给别人拍照或录像的同时,向对方展示内容」(5:09)。14
是 Touch ID,不是 Face ID
规格表列出的是 Touch ID 指纹传感器和一颗屏下 FaceTime 相机,没有 Face ID。2 自 2022 年的 iPhone SE 之后,每一台 iPhone 都搭载 Face ID,不少应用把这几个字硬编码进了界面。在 canEvaluatePolicy 执行之后,LAContext.biometryType 会返回 .touchID、.faceID 或 .none,本地化字符串、SF Symbols 和引导文案都应当据此分支。6 已经在 iPad 和 Mac 上运行的应用通常做对了这一点;仅限 iPhone 的应用则常常没有。
时间表
- 9月14日: iOS 27.0(24A437)与 Xcode 27(27A266a)已发布,其中没有 Duo SDK;决定可调整尺寸行为的 27.0 SDK 就是 Xcode 27 里的那一个。10519
- 9月18日: iPhone 18 Pro 上市,搭载 iOS 27。10
- 9 月晚些时候: Xcode 27.1 beta——Apple 的开发者页面称它是「为 iPhone Duo 构建、运行并测试你的应用」的途径——以及「Preparing your app for iPhone Duo」指南;设计指南已经进入「人机界面指南」。Group Labs 在 9月16日 与 9月17日,论坛问答在 9月23日。1316(9月17日:这份指南已上线;见上文更新。20)(9月19日:Xcode 27.1 beta已于9月18日发布;见上面9月19日的更新。22)
- 10月5日: Xcode 27.1 RC(27A9275)发布,App Store Connect 向用它和 iOS 27.1 SDK 构建的版本开放 App Store(10月11日)。23
- 10月16日: iPhone Duo 于太平洋时间上午 5:00 开启预订。1
- 10月23日: iPhone Duo 发售,搭载 iOS 27.1。1
这六周里该做什么
- 链接 iOS 27 SDK,不要在 Info.plist 中保留
UIRequiresFullScreen,接受连续的尺寸变化而不是离散的尺寸跳变。检查清单就是这一项的自查表。 - 在布局判断上,用尺寸类别和
onGeometryChange取代对屏幕边界、设备类型和界面方向的判断;内屏不理会你声明的支持方向,而当代码确实需要一块屏幕时,演讲的建议是「从 window scene 动态地获取它」,而不是取主屏幕(4:14)。 - 如果应用承受得住,就打开多场景支持,先在 iPad 上测试两个窗口,并处理好被拒绝的场景请求——外屏无法打开新窗口。
- 在 Device Hub 的缩放模式下,分别以 669 × 951、951 × 669 和 466 × 678 运行应用,因为这些正是 App Store Connect 的尺寸所推出的点数形状。预览中的 Resizable Canvas 今天就能覆盖全部三种;等 Xcode 27.1 发布后,它的 iPhone Duo 模拟器会再加上展开、合上、旋转与折叠控件。(9月19日:beta已发布,模拟器的限制见上面更新中的引用。22)
- 如果应用还没有小组件,就做一个。
- 生物识别相关文案按
biometryType分支处理。 - 现在就看完那六场 Tech Talks,并读一遍「Designing for iPhone Duo」;它们合起来讲清了尺寸类别、场景规则、保留区域、排布视图、纵向控件和相机配件。至于动手实现与测试,要等 Xcode 27.1 beta。1416
关键要点
对 iOS 开发者:
- App Store Connect 把 iPhone Duo 内屏的尺寸定为 2007 × 2853 像素,按 3 倍缩放即 669 × 951 点,面板则是 1878 × 2670;外屏是 466 × 678。宽高比 1.42,两种形状在任何其他 iPhone 上都不存在。217
- 在内屏上,16:9 视频的画面面积比 iPhone 18 Pro 大约多出 77%,同时有五分之一的屏幕让给了黑边;收益最大的是文档与双栏布局。23
- Split View、同一应用的两个窗口和应用组合随这台设备来到 iPhone;在 iPad 上支持多实例的应用在这里同样支持,但新窗口仅限内屏。114
- 是 Touch ID,不是 Face ID。请按 biometryType 分支。26
对产品决策: - 外屏上的 StandBy 意味着:想在这台设备上露面,小组件或「实时活动」是入场门槛。115 - Duo 的 SDK 既不在 iOS 27 也不在 Xcode 27 的 RC 说明里;Apple 把 Xcode 27.1 beta 定在 9 月晚些时候;六场 Tech Talks 和「Designing for iPhone Duo」指南今天已经可以看到。45131416(9月19日:Xcode 27.1 beta已于9月18日发布。22)
常见问题
我现有的应用能在 iPhone Duo 上运行吗?
能,分三档。Apple 演讲的原话:「即便你没有用 iOS 27 SDK 构建,你的应用也能在 iPhone Duo 上运行」,展开时是「熟悉的尺寸和宽高比」;使用 iOS 27 SDK 后,它会扩展「到内屏上状态栏区域的左侧」;使用 iOS 27.1 SDK 后,它「会延伸到屏幕边缘」。14 UIRequiresFullScreen 仍然有效,但设备展开或合上时,应用依然会改变尺寸。Apple 关于这个已弃用键的技术说明给出了 iOS 27 SDK 下的通则:该键「不再让你的应用退出尺寸调整」,并且「系统会离散地调整你的应用场景的尺寸」。1214
iPhone Duo 报告的尺寸类别是什么?
外屏:竖持时纵向 regular、横向 compact,横持时两个方向都是 compact,与其他 iPhone 一致。内屏:按 Apple 的 Tech Talk,两个方向都是 regular。14
两块显示屏的点数尺寸是多少?
Apple 的规格表给出的是面板像素,App Store Connect 的截图规格给出的是以像素计的截图尺寸:内屏 2007 × 2853,外屏 1398 × 2034,按 3 倍缩放分别是 669 × 951 点与 466 × 678 点。在 3 倍缩放这一前提下,这意味着内屏以 669 × 951 渲染,再在每个维度上缩小约 6.4%,落到 1878 × 2670 的面板上——正是 Apple 当年为 Plus 机型列出的做法。这是一个推断;等 Xcode 27.1 beta 到来后,Device Hub 会予以确认或纠正。21117
现在已经有 iPhone Duo 的模拟器或 Device Hub 配置了吗?
Xcode 27 RC 里还没有。Apple 的新闻稿把 Device Hub 的支持称为「upcoming」,开发者页面把 Xcode 27.1 beta 定在「later this month」,而第一场 Tech Talk 演示了 Xcode 27.1 模拟器上的展开、合上、旋转与折叠控件。151314(9月19日:Xcode 27.1 beta(27A9269)已于9月18日发布;见上面的更新。22)
到目前为止,Apple 为开发者发布了哪些内容?
一个 Get Ready for iPhone Duo 页面、六场 Tech Talks,以及一份日程:9月16日 与 9月17日 的 Group Labs、9月23日 的论坛问答、标注为「later this month」的工作坊与 Xcode 27.1 beta、已经进入「人机界面指南」的「Designing for iPhone Duo」页面,还有标注为本月晚些时候到来的「Preparing your app for iPhone Duo」指南。131416(9月17日:这份指南已上线;见上文更新。20)(9月19日:beta也已发布。22)
iPhone Duo 有 Face ID 吗?
没有。规格表列出的是 Touch ID 指纹传感器。2
Duo 的 API 什么时候发布?
随 Xcode 27.1 beta 一起,Apple 的开发者页面说它「coming later this month」。设备于 10月23日 发售,搭载 iOS 27.1。113(9月19日:beta已于9月18日发布。22)(10月11日:RC 版本 Xcode 27.1 RC(27A9275)已于10月5日发布,App Store Connect 接受用它构建的版本上架 App Store。23)
参考来源
-
Apple Newsroom,Apple unveils iPhone Duo,2026年9月9日。开发者相关表述、Split View 与多任务、StandBy、相机功能、价格与日期、iOS 27.1 要求。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple,iPhone Duo Tech Specs,取回于 2026年9月9日:内屏 1878 × 2670 像素、430 ppi,外屏 1398 × 2034 像素、460 ppi,Touch ID 指纹传感器,屏下 FaceTime 相机;展开 6.48 × 4.64 英寸、厚 0.21 英寸、重 8.96 盎司;合上 3.31 × 4.64 英寸。本文中的物理尺寸由作者依据这些面板数据与像素密度换算得出;点数尺寸则由脚注 17 中的截图尺寸按假定的 3 倍缩放推得。 ↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple,iPhone 18 Pro Tech Specs,取回于 2026年9月9日:1206 × 2622 像素与 1320 × 2868 像素,均为 460 ppi。 ↩↩↩
-
Apple Developer Documentation,iOS & iPadOS 27 RC Release Notes,取回于 2026年9月9日。未提及 iPhone Duo;含连续可调整尺寸的相关条目。 ↩↩↩↩↩
-
Apple Developer Documentation,Xcode 27 RC Release Notes,取回于 2026年9月9日。含 Device Hub 条目;未提及 iPhone Duo。 ↩↩↩↩↩
-
Apple Developer Documentation,LAContext.biometryType。 ↩↩
-
Apple Developer Documentation,UIApplicationSupportsMultipleScenes 与 UIWindowScene。 ↩↩
-
Apple Developer Documentation,horizontalSizeClass。 ↩
-
Hacker News,iPhone Duo 讨论串,2026年9月9日。仅为反应;本文未从中援引任何产品事实。 ↩
-
Apple Newsroom,Apple debuts iPhone 18 Pro and iPhone 18 Pro Max,2026年9月9日:「预订自 9月12日(星期六)开始,9月18日(星期五)开始供货」;「iOS 27 将于 9月14日(星期一)作为免费软件更新提供」。 ↩↩
-
Apple Human Interface Guidelines,Layout,页面数据保存于 2026年9月9日:尺寸类别表把每一台 iPad(包括 768 × 1024 点的 7.9 英寸 iPad mini)在竖持时都列为 regular 宽度;设备尺寸表给出 8.3 英寸 iPad mini 为 744 × 1133 点,iPhone 17 Pro 为 402 × 874 点(3 倍缩放下的 1206 × 2622 像素),iPhone 8 Plus、7 Plus、6s Plus 和 6 Plus 为 1080 × 1920 像素面板上 3 倍缩放的 414 × 736 点。 ↩↩↩↩
-
Apple Developer Documentation,TN3192: Migrating your iPad app from the deprecated UIRequiresFullScreen key,修订日期 2026年8月13日,取回于 2026年9月9日:「从 iOS 27 和 iPadOS 27 开始,UIRequiresFullScreen 不再让你的应用退出尺寸调整。取而代之的是,系统会离散地调整你的应用场景的尺寸。」「采用离散尺寸调整时,人们拖拽窗口的过程中场景不会改变尺寸。」 ↩↩
-
Apple Developer,Get Ready for iPhone Duo,取回于 2026年9月9日 太平洋时间下午 1:12;以及开发者新闻帖 Get ready for iPhone Duo,在 Apple 的新闻源中标注为 2026年9月9日 太平洋夏令时上午 11:00:「Xcode 27.1 beta。获取最新的 SDK,以便为 iPhone Duo 构建、运行并测试你的应用。Coming later this month」;「Designing for iPhone Duo … Coming soon」;「Preparing your app for iPhone Duo … Coming later this month」;Group Labs 于 9月16日 太平洋时间晚 8:00 至 9:00 与 9月17日 上午 8:00 至 9:00;问答于 9月23日;工作坊「Coming later this month」。 ↩↩↩↩↩↩↩↩↩↩↩
-
Apple Developer Tech Talks,Prepare your app for iPhone Duo、Raise the bar with iPhone Duo、Strike a pose with adaptive layouts on iPhone Duo、Leverage multiple displays and scenes on iPhone Duo、Build a great camera experience for iPhone Duo 和 Design for iPhone Duo,取回于 2026年9月9日。标题与简短描述取自各场演讲的页面;带时间码的引语取自各场演讲的英文字幕轨:Prepare your app(David Jackson,UI Frameworks)0:04、0:29、0:36、0:41、0:49、0:57、1:05、1:11、1:16、1:21、1:25、3:08、3:20、3:46、3:50、3:55、3:57、4:14、4:36、4:45、5:19、5:24、6:18、7:24;多显示屏与场景 3:38、3:53、4:05、4:08、4:26、4:59、5:09、5:14;相机 1:14、1:20、1:27、1:34、1:58、2:04;Strike a pose 0:47(保留区域)、2:13(位移)、2:18(Arrangements)。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple Human Interface Guidelines,Live Activities:「实时活动」会出现在锁定屏幕、主屏幕、灵动岛,以及 iPhone 上的 StandBy 中。 ↩↩
-
Apple Human Interface Guidelines,Designing for iPhone Duo,更新日志条目日期为 2026年9月9日:「新页面。介绍为 iPhone Duo 做设计的基本概念,包括设备姿态、跨两块显示屏的动态布局,以及纵向轴线上的工具栏与标签栏。」取回于 2026年9月9日 太平洋时间下午 4:15;到太平洋时间下午 4:10,Apple 的开发者页面已用它取代了「Coming soon」。设计指南一节中的引语均逐字取自该页面;页面上的开发者链接为 ToolbarItemVisibilityPriority、ToolbarOverflowMenu、ToolbarItemGroup、UIBarButtonItemVisibilityPriority、UIBarButtonItem、UIBarButtonItemGroup、UINavigationItem.additionalOverflowItems、NavigationSplitView、UISplitViewController、HStack、VStack、ZStack、Label,以及 SwiftUI 与 UIKit 的安全区域内边距。 ↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple,App Store Connect Help,Screenshot specifications,取回于 2026年9月10日 太平洋时间上午 10:40;以及 App preview specifications(「Device resolutions 2034 × 1398 pixels, 2853 × 2007 pixels」;「在 App Store Connect 中为该设备上传素材的支持将于今年晚些时候提供」);App Store Connect release notes,条目日期 2026年9月9日:「已新增 iPhone Duo、iPhone 18 Pro Max、iPhone 18 Pro、Apple Watch Ultra 4 和 Apple Watch Series 12 的应用预览与截图规格」;Apple Developer,Releases,「App Store Connect Update」,2026年9月9日 太平洋时间下午 3:00,由发布动态 RSS 源承载(取回于 2026年9月10日 太平洋时间上午 11:37),其 pubDate 为「Wed, 09 Sep 2026 15:00:00 PDT」。截图行:「iPhone Duo. Screenshot size 1398 × 2034 pixels, 2034 × 1398 pixels (outer display); 2007 × 2853 pixels, 2853 × 2007 pixels (inner display)」;5.5 英寸那一行(iPhone 8 Plus、7 Plus、6s Plus、6 Plus)要求 1242 x 2208 像素。9月9日 取回该页面时没有跟随它的重定向,因而被误读为没有 iPhone Duo 行。2026年10月7日更正:Apple 已于2026年10月5日开放 iPhone Duo 的提交:「You can submit your iPhone Duo optimized apps and games in App Store Connect today. Starting April 2027, any apps or games submitted will need to include screenshots for iPhone Duo.」(现在即可在 App Store Connect 中提交针对 iPhone Duo 优化的应用和游戏。自2027年4月起,提交的任何应用或游戏都需要包含 iPhone Duo 截图。)Apple Developer,News,「Prepare and submit your apps for iPhone Duo」,2026年10月5日,https://developer.apple.com/news/?id=kkphp5qo。 ↩↩↩↩↩↩↩↩
-
Apple Developer,Design Resources,Product Bezels,iPhone Duo(Bezel-iPhone-Duo.dmg,「Photoshop, PNG」),取回于 2026年9月10日。屏幕挖空区尺寸由作者从 PNG 的 alpha 通道测得:Inner Open Landscape 为 3093 × 2247 外框内的 2853 × 2007,四边各有 120 像素边框;Outer Closed Portrait 为 1574 × 2194 内的 1398 × 2034,统计的是所有带任何透明度的行;开口最上和最下一行的 alpha 为 1,因此只统计完全透明的像素会得到 2032(2026年10月2日更正)。 ↩
-
Apple Developer,Releases RSS 订阅源,2026年9月15日 获取:「Xcode 27 (27A266a)」「iOS 27.0 (24A437)」「iPadOS 27.0 (24A437)」「macOS 27.0 (26A428)」「tvOS 27.0 (24J361)」「visionOS 27.0 (24M362)」「watchOS 27.0 (24R364)」,日期均为 2026年9月14日(周一)。iOS & iPadOS 27 Release Notes 与 Xcode 27 Release Notes,正式版发布后于 2026年9月15日 通过 Apple 文档 JSON 获取:两份文档中「Duo」(不区分大小写)的匹配均为零;Xcode Release Notes 索引只有一条 27 条目,没有 27.1。Apple Developer,Get Ready for iPhone Duo,2026年9月15日 获取:「Xcode 27.1 beta. Get the latest SDKs to build, run, and test your app for iPhone Duo. Coming later this month」;「Preparing your app for iPhone Duo. Learn how to build and update your app to dynamically resize and adjust its layouts for iPhone Duo. Coming later this month」;Group Labs 在 9月16日 与 17日,问答在 9月23日,工作坊「Coming later this month」。 Apple,App Store Connect release notes,2026年9月9日 条目:”You can now upload apps built with Xcode 27 RC using the SDK for iOS 27.0 RC, iPadOS 27.0 RC, macOS 27.0 RC, tvOS 27.0 RC, visionOS 27.0 RC, and watchOS 27.0 RC for the App Store, and for internal and external testing through TestFlight.” 9月15日 获取的订阅源只有一条 RC 条目「iOS 27.0 RC (24A437)」(2026年9月11日,周五),没有 Xcode 27 RC 条目。 ↩↩↩↩↩
-
Apple,Xcode 27.2 Beta Release Notes,2026年9月17日 通过文档 JSON 端点获取,Overview:「The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1.」「Duo」在该文档中出现一次,在以同样方式获取的 iOS & iPadOS 27.2 Beta Release Notes 中出现零次;Xcode 说明的 Device Hub 已知问题为 181945323 与 182553164。Apple,Releases,2026年9月17日 获取的 RSS 订阅源:「Xcode 27.2 beta (27B5019j)」与「iOS 27.2 beta (24B5084k)」日期为 Wed, 16 Sep 2026;没有任何条目标题包含 27.1。Apple,iPhone Duo 开发者页面,2026年9月17日 获取,Tools and documentation,按顺序读到的三个元素:「Xcode 27.1 beta」;「Get the latest SDKs to build, run, and test your app for iPhone Duo」;「Coming later this month」。同一页面上,「Preparing your app for iPhone Duo」卡片在 2026年9月15日 获取时显示「Coming later this month」,9月17日 则显示「Explore documentation」,并链接到该指南。Apple,Preparing your app for iPhone Duo,Technology Overviews,2026年9月17日 通过文档 JSON 端点获取:「Build your app with Xcode 27.1 or later to use all of the available screen space on iPhone Duo. In earlier versions, your app doesn’t extend under the status bar and camera.」「The iPhone Duo simulator in Device Hub requires Xcode 27.1, coming later this month.」更新中的 API 名称均出自这份指南;它没有说明任何显示屏尺寸。 ↩↩↩↩↩↩↩↩↩
-
作者于 2026年9月17日 对 Xcode 27.0(27A266a)内 iOS 27.0 SDK 的核查:在
DEVELOPER_DIR指向该 Xcode 时,xcrun --sdk iphoneos --show-sdk-version输出 27.0。对 SwiftUI 模块接口(SwiftUI.swiftmodule/arm64e-apple-ios.swiftinterface)和UIKit.framework/Headers中每一个头文件做文本搜索,均未发现ArrangementView、UIArrangementViewController、ReservedRegion、reservedRegions、VerticalBehavior、VerticalBarBehavior、verticalBarEdge、toolbarVerticalEdge或axisBehavior。同一搜索在 SwiftUI 中找到了位于@available(anyAppleOS 27.0, *)之下的presentationPlacement,在UISheetPresentationController.h中找到了位于API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0))之下的preferredPlacement,在 SwiftUI 中找到了位于@available(iOS 27.0, macOS 26.1, watchOS 27.0, tvOS 27.0, visionOS 27.0, *)之下、并在UIBarButtonItem.h中位于API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0))之下的visibilityPriority,在 SwiftUI 中找到了位于@available(iOS 27.0, visionOS 27.0, *)之下的ToolbarOverflowMenu与topBarPinnedTrailing,在UINavigationItem.h中找到了位于API_AVAILABLE(ios(16.0))之下的pinnedTrailingGroup与additionalOverflowItems,在 SwiftUI 中找到了位于@available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, visionOS 26.0, *)之下的backgroundExtensionEffect,以及 UIKit 头文件中的UIBackgroundExtensionView.h。 ↩ -
Apple,Releases,2026年9月19日抓取的RSS信息源:“Xcode 27.1 beta (27A9269)”日期为 Fri, 18 Sep 2026 10:00:00 PDT,“TestFlight Update”日期为 Fri, 18 Sep 2026 14:00:00 PDT。Apple,Xcode 27.1 Beta Release Notes,2026年9月19日通过文档JSON端点抓取:Overview,已引用;Mac Catalyst,Known Issues(185924957、187046347,附解决办法);Previews,New Features(182598534);Simulator,Known Issues(187708500、187708663、187708767);没有其他部分。Apple,Xcode 27.2 Beta Release Notes,2026年9月17日和9月19日抓取:两次仅Overview不同,20中引用的9月17日句子被提示“Download Xcode 27.1 beta to get the iOS SDK and simulator support for iPhone Duo.”取代,链接指向 https://developer.apple.com/download/applications/ 。2026年9月19日抓取的Apple文档JSON,各页面的
metadata.platforms:ArrangementView、UIArrangementViewController、reservedRegions(kind:options:layoutDirectionBehavior:)、reservedRegions(kind:options:)和toolbarVerticalBehavior(_:):每一页都列出iOS 27.1和iPadOS 27.1,并带beta标记。Apple,App Store Connect发行说明,2026年9月18日,TestFlight update,全文引用。Apple,Preparing your app for iPhone Duo,2026年9月17日和9月19日通过文档JSON端点抓取;两句均引自各自的抓取。Apple,iPhone Duo开发者页面,2026年9月17日和9月19日抓取:Tools and documentation下“Xcode 27.1 beta”卡片的第三个元素,9月17日为“Coming later this month”,9月19日为“View betas”。Apple,“Build for iPhone Duo with new resources”,新闻,2026年9月18日:“Get Xcode 27.1 beta.”和“Get Figma and Sketch design kits for iPhone Duo from the Apple Design Resources.” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple,Releases,2026年10月11日抓取的RSS信息源:“Xcode 27.1 RC (27A9275)”日期为 Mon, 05 Oct 2026 10:00:00 PDT,“Xcode 27.1 beta (27A9269)”日期为 Fri, 18 Sep 2026 10:00:00 PDT。Apple,App Store Connect release notes,2026年10月11日抓取,2026年10月5日的条目:“You can now upload apps built with Xcode 27.1 RC using the SDK for iOS 27.1, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.”(现在可以上传用 Xcode 27.1 RC、以 iOS 27.1、iPadOS 27.0、macOS 27.0、tvOS 27.0、visionOS 27.0 和 watchOS 27.0 SDK 构建的应用,用于 App Store,以及通过 TestFlight 进行的内部和外部测试) ↩↩↩↩