← 返回技術實踐

蘋果新品

iPhone Duo 會不會讓舊 App 出問題?哪些應用最容易黑邊、錯位和點不準

約 9 分鐘閱讀

一疊 iPhone 放在更大的 iPad 上,側邊可見 home 鍵與音量鍵
手機和更大的平板疊在一起。Duo 的內螢幕可以給出 regular 寬度,但不能因此把它當成 iPad。

你打開一台剛到手的 iPhone Duo,常用的 App 多半還在。它不會因為「沒為摺疊螢幕重做」就直接閃退。用 iOS 26 或更早的 SDK 編出來的套件,展開後會停在內螢幕中間一塊熟悉的手機尺寸裡,四周是空的。使用者把這塊空叫做黑邊。

版面被拉長、按鈕點不中,是另一件事。那通常發生在開發者改用 iOS 27 或 27.1 的 SDK、系統開始讓視窗跟著摺疊變大之後。程式如果仍按一塊固定螢幕來擺控制項,相容視窗拿掉,問題才露出來。

先說結論

舊 App 一般打得開。黑邊是系統給 iOS 26 及更早 SDK 留的相容視窗,不是當機。錯位和點不準,主要出現在視窗已經變大、排版卻還假設「手機永遠是這塊尺寸、這個方向、不是 iPhone 就是 iPad」的時候。

下面按 2026 年 10 月 15 日能核對的材料來寫。Apple 的 iPhone Duo 產品頁給出螢幕和開賣日期。Prepare your app for iPhone Duo 寫明三種 SDK 視窗。同題 Tech Talk 補充了主螢幕、方向和安全區。本文沒有在真機上逐個打開 App Store 裡的熱門應用,所以說的是哪一類程式會碰到哪一種現象,不是給某個品牌判「已經壞了」。

舊 App 在 iPhone Duo 上還會打開嗎?

會打開。準備頁寫明:所有 App 都會在 iPhone Duo 上運行。差別是視窗肯不肯跟著內螢幕、外螢幕和分割畫面一起變。

iPhone Duo 是蘋果第一款摺疊 iPhone。內螢幕 7.6 英寸,比 iPhone 18 Pro Max 大 50%。合上之後外螢幕 5.4 英寸,螢幕面積超過 iPhone 18 Pro 的 90%。內外螢幕寬高比一致。美國時間 2026 年 10 月 16 日凌晨 5 點開始預訂,10 月 23 日開賣。這些數字來自產品頁,不是來自討論區的猜測。

系統按這個二進位是用哪一版 SDK 編的來選視窗,不按 App 的名字,也不按它在 iPhone 18 Pro 上好不好看。

3 檔
按編譯所用 SDK 分的視窗
7.6″
內螢幕,產品頁口徑
10.23
2026 年美國開賣日
編譯所用 SDK 展開後的內螢幕 文件還寫了什麼
iOS 26 或更早 居中,周圍留空 合上後,內容在狀態列和相機的左側
iOS 27 鋪滿大部分內螢幕,右側狀態列一帶仍空著 展開時視窗鋪開,合上時回到外螢幕
iOS 27.1 及以後 用到整塊內螢幕 工具列和標籤列直排在狀態列下方;上架前要確認內容跟得上

表裡前兩列是準備頁的原意。第三列裡,合蓋後「內容讓開狀態列和相機」只明確寫給 iOS 26 及更早的 SDK。iOS 27 及以後的句子是:展開鋪滿內螢幕,合上回到外螢幕。不要把三檔的外螢幕都畫成同一圈黑邊。

三塊內螢幕示意圖:舊 SDK 居中留空,iOS 27 右側留空,iOS 27.1 鋪滿並在左側放直欄
三種視窗只說明內螢幕上的差別。合蓋後的外螢幕要另看狀態列和相機讓出來的那一側。

黑邊到底是誰留出來的?

黑邊不是 App 自己畫的一圈裝飾。用 iOS 26 或更早 SDK 編的套件,系統不讓它去填 7.6 英寸內螢幕,把它放進一塊它本來就認識的尺寸裡。剩下的區域是空的。功能多半還在:能點的按鈕仍在那塊視窗裡面。

合蓋不是同一張圖。準備頁對這一檔 SDK 的外螢幕寫法是:內容出現在狀態列和相機的左側。外螢幕更寬、更矮,產品頁也說常用控制項會挪到側面,把直向空間留給內容。你不能把內螢幕那圈黑邊,原樣說成「合上以後四周也發黑」。

外螢幕不是縮小版的內螢幕黑邊

最容易傳錯的一句是「外螢幕和普通 iPhone 完全一樣,所以舊 App 在外面一定滿版」。Apple 寫的是內容讓開狀態列和相機。滿不滿、控制項在不在側面,按這一檔 SDK 的說明看,不要用內螢幕相容視窗去套外螢幕。

黑邊會留到開發者換 SDK。準備頁把 iOS 27 寫成空的區域明顯變少,把 iOS 27.1 寫成用滿整塊螢幕。只重編譯、不改版面,黑邊可以消失,下一節的錯位會接上來。開賣前能走完 27.1 測試再提交的團隊有限,所以 10 月 23 日當天仍會看到相容視窗。這是時間,不是某家商店的故障名單。

哪些 App 最容易看見黑邊?

判斷標準只有一條:這個二進位是不是還用 iOS 26 或更早的 SDK 編的。和它是不是遊戲、是不是大廠無關。展開內螢幕時,這一檔全部落在中間那塊視窗裡。

更常見的是長期不發版的工具:停車、門禁、內部簽核、幾年沒動的行業 App。它們往往沒有人在新 SDK 上重編。使用者看到的就是黑邊,列表和按鈕多半還能用。

遊戲要單獨看。人機介面指南要求遊戲在每種姿態下都盡量鋪滿,優先改寬高比,而不是加黑邊;實在要留白,留白處應有畫面。如果一款遊戲在已經用新 SDK 之後仍左右或上下留黑,那是它自己的畫面策略,不是系統相容視窗。兩種黑邊看起來像,責任不在同一層。本文不能替某一款遊戲判斷它屬於哪一層,那要看它商店裡那一版的編譯 SDK。

哪些 App 最容易版面錯位?

錯位幾乎不會出現在還停在相容視窗裡的那一檔。視窗尺寸沒變,原來按手機畫的介面就還對。錯位出現在視窗已經跟著摺疊、旋轉或 Split View 變大,程式卻還在用舊的尺寸假設。

準備頁點名了幾類寫法。它們會把介面拉扯、裁切,或把控制項放到看不見的地方:

  • 用整塊螢幕當自己的視窗。 UIScreen.main.bounds、啟動時量一次尺寸、UIWindow(frame: UIScreen.main.bounds)。摺疊發生在同一次使用中途,啟動時的數字不會再更新。Tech Talk 還說,雙螢幕裝置上的 main screen 是含糊的,以後的系統會棄用它。
  • 用方向決定版式。 內螢幕不遵守 App 宣告的支援方向。拿 UIDevice 的方向或 interfaceOrientation 去切換橫直版面,會和視窗的實際寬高對不上。
  • 用「是不是 iPhone」決定版式。 userInterfaceIdiom == .phone 或 .pad,以及「regular 寬度就是 iPad」。內螢幕上的 iPhone App 可以是 regular 寬度。
  • 用一份已知高度表。 bounds.height == 844 這類判斷對不上 Duo 的視窗。
  • 鋪滿裁切的主視覺和影片。 scaleAspectFill 在更寬的畫面上會切掉主體。

舉一個能對上文件的例子。一個備忘錄 App 用 iOS 26 SDK 編,展開後居中,四周留空,按鈕仍在原來的位置,能記能查。開發者改用 iOS 27.1 SDK,視窗鋪滿內螢幕,系統把標籤列直排到狀態列下方。如果底部按鈕的 Y 座標來自啟動時的螢幕高度,它會落到欄的位置上,或者落到內容區外面。輸入沒變,變的是視窗這一層。

regular 寬度不等於 iPad

最常見的張冠李戴,是看見 regular 寬度就切到「僅 iPad」的側邊欄。這段程式以前只在 iPad 上跑。iPhone Duo 的內螢幕也會給出 regular 寬度,側邊欄會在這台手機上出現。

哪些 App 最容易點不準,或預覽反過來?

互動問題是版面問題的下一層:控制項還在,但手指按到的不是它,或者鏡頭方向和預覽相反。

鎖方向的遊戲和影片

內螢幕不理會你宣告的方向。只做了橫向、按鈕焊在某一邊的遊戲,摺疊或換成另一種姿態之後,虛擬搖桿可能壓進安全區,或者整塊畫面仍按舊比例留白。指南的建議是改寬高比並鋪滿。留白如果不可避免,留白處要有畫面,而不是一條裸的黑邊。

自己挑選鏡頭的相機和通話

摺疊會改變鏡頭相對使用者的朝向。自己挑選「前鏡頭 / 後鏡頭」的相機 App,要在開合時切換鏡頭。相機體驗的 Tech Talk 要求用 AVCaptureDeviceDirectionCoordinator:外螢幕的協調器會把後鏡頭報成朝前,內螢幕則會報成朝後。不用它,預覽可能鏡像錯,或者開蓋之後仍顯示剛才那顆鏡頭。這不是黑邊,是互動。

自製底欄和點擊熱區

系統的導覽列、工具列、標籤列畫在安全區之外,並自動避開狀態列和相機。自己畫的底欄不會自動豎過來。外螢幕和橫過來的內螢幕上,標準控制項在側面;直著拿的內螢幕才有足夠高度保留橫條。安全區經常不對稱,分割畫面時直排按鈕可以出現在左側。點擊熱區如果按「底欄永遠在下方、左右對稱」來算,就會點空。

這和 iPad 上的 iPhone 相容模式是一回事嗎?

不是。iPad 上那個被放大的 iPhone 視窗,回答的是「這個套件沒有 iPad 介面」。iPhone Duo 的三檔視窗,回答的是「這個套件用哪一版 SDK 編譯」。兩套規則可以同時存在於一個專案裡,但不能互相代替。

還有一個職責不同:iPad 相容模式通常不會在同一次使用中途,因為使用者把裝置折了一下就改視窗大小。Duo 會。所以在 viewIsAppearing 裡量一次就夠的寫法,在這裡不夠。尺寸要在 layoutSubviews、viewDidLayoutSubviews,或尺寸將要變化的回呼裡重讀。SwiftUI 用 GeometryReader 或 onGeometryChange。縮放用 traitCollection.displayScale,不要用 UIScreen.main.scale。視窗用 UIWindow(windowScene:),不要存一個 UIScreen。

團隊如果去年為秋季新機改過測試計畫,那份計畫回答的是「新機到之前,回歸放在哪一條流水線」。Duo 的視窗問題要加一條:同一條用例要在合蓋、展開、旋轉和 Split View 各看一次,而不是只在一塊固定解析度的模擬器上截圖。可以對照 發布會前要不要為 iPhone 18 改測試計畫 裡那條穩定通道和測試通道的分法,把 Duo 放進測試通道,而不是把整條發版回歸停掉。模擬器要裝在帶 Xcode 27.1 的 Mac 上,環境怎麼分成本機和另一台機器,見 macOS 27 測試環境怎麼搭。視窗規則本身不取決於你租不租一台 Mac。

哪一件事這篇不能代答?

某個具體 App 今天開不開黑邊,必須看它商店裡那一版是用什麼 SDK 編的,或者在 Xcode 27.1 的 iPhone Duo 模擬器裡打開。準備頁還提到另外兩種試法:Device Hub 裡的可調整尺寸模擬器,以及 macOS 27 上把 iPhone 鏡像視窗拉到極端寬高。文件寫明,Duo 模擬器才是看完整原生體驗的辦法。本文沒有替任何一款上架 App 做這件事。

轉軸摺痕會不會擋住某一像素、某款遊戲的留白是不是故意的、外螢幕側欄會不會擋住自製手勢,都要在對應姿態裡看。文件能告訴你該懷疑哪一層,不能告訴你那一層在你的套件裡是否已經改過。

所以,舊 App 會壞到什麼程度?

用 iOS 26 或更早 SDK 編的 App 會運行。展開後的典型現象是內螢幕黑邊,不是閃退。合上後,內容讓開狀態列和相機,不要把它說成和內螢幕同一圈黑邊。

最容易黑邊的,是還沒換 SDK 的套件,尤其是久不更新的工具。最容易錯位的,是換了 iOS 27 或 27.1、卻仍用螢幕單例、固定高度、方向或「iPhone / iPad」來排版的介面。最容易點不準的,是鎖方向的遊戲、自己管鏡頭朝向的相機,以及自製底欄。

標準導覽列和標籤列會跟著系統走。自己算座標的那一層不會。要確認某一款 App,打開 Duo 模擬器或真機看這一版二進位。它在 iPhone 18 Pro 上正常,不能推斷摺疊之後也正常。

還要回到站內繼續看?

這篇停在視窗規則,以及哪一類程式會碰到黑邊、錯位或點不準。相關測試安排回部落格看;想看產品說明,回首頁。