Сегодня 15 октября 2026. На странице продукта Apple написано: предзаказ 16 октября в 5:00 по тихоокеанскому времени, продажи с 23 октября. Новость для разработчиков от 5 октября уже разрешает заново собрать проект в Xcode 27.1 и отправить его. С апреля 2027 новые отправки ещё и должны включать скриншоты iPhone Duo. Запуск говорит только о том, что старый бинарник ещё жив. Он не говорит, что внутренний экран заполнен. Он не говорит, что ветка портрета или альбома выбрана верно. Он не говорит, что при Split View главная кнопка всё ещё внутри безопасной зоны. Текст от 13 октября считал срок переделки вместе с покупкой Mac. Эта статья отвечает только на вопрос до старта продаж: нужно ли менять код и сколько должен стоить этот проход тестов.
Почему запуск ещё не равен повторной адаптации
Старое суждение и новое упираются в одну и ту же фразу отзыва. Старое суждение — «в симуляторе запускается, плохие отзывы посмотрим после старта продаж». Новое суждение сначала смотрит, какой факт вёрстка всё ещё читает: весь экран, ориентацию устройства или текущее одно окно. Страница подготовки Apple прямая: приложения, собранные на SDK iOS 27 и новее, меняют размер, когда Duo складывается. Жёстко заданные размеры экрана, фиксированная ориентация и допущения об устройстве растягивают вёрстку, обрезают её или ставят не на место.
Одни и те же исходники выглядят по-разному на трёх уровнях SDK. Это первый разрез до старта продаж, а не вкус дизайна. Сборка на SDK iOS 26 или старше запускается. После раскрытия окно сидит по центру, и вокруг пустое поле. После закрытия контент уходит влево от статус-бара и камеры. Сборка на SDK iOS 27 заполняет большую часть внутреннего экрана и всё ещё избегает статус-бара на правом крае. Оптимизированное состояние начинается с SDK iOS 27.1 и новее: контент занимает всю область отображения, а панели инструментов и вкладок стоят вертикально под статус-баром. Команда, которая только меняет скриншоты магазина, а бинарник остаётся на старом SDK, показывает пользователю пустое поле, когда тот открывает внутренний экран. Пустое поле не прочитают как «адаптируем на следующей неделе».
Второй разрез: окно не равно экрану, а ориентация не равна форме. Страница подготовки требует перечитывать размер при каждом изменении. Одного чтения в viewIsAppearing мало, потому что складывание происходит в середине сессии. В UIKit вёрстку, которая зависит от размера, кладут в layoutSubviews или viewDidLayoutSubviews. Работу в момент смены размера делают в viewWillTransition(to:with:). В SwiftUI берут GeometryReader или onGeometryChange. Масштаб берут из trait collection, а не из UIScreen.main.scale. На устройстве с двумя экранами смысл main screen размыт, и Apple говорит, что он будет объявлен устаревшим в будущей версии.
Третий разрез — тестовая машина. Симулятор iPhone Duo в Xcode 27.1, открытие, закрытие и поворот внизу Device Hub и крайнее растяжение iPhone Mirroring на macOS 27 живут на Mac. Этой цепочки нет в Windows. Как команда выбирает сборщик, написано в сравнении Xcode Cloud и удалённого Mac. Xcode Cloud умеет собирать пакет. Он не заменяет вас перед Device Hub, пока вы поворачиваете закрытое, полусложенное и открытое по одному разу, а затем перетаскиваете Split View слева направо.
Как разложить размеры складного экрана, ориентацию и мультиокно
Одна веха под названием «поддержать iPhone Duo» в графике до старта продаж обязательно съедет. Разделите работу по четырём воротам, в которые пользователь реально упирается. Если не хватает одних ворот, вы запишете «компилируется» как «уже адаптировано».
| Инструмент | Вход | Что он может | Контекст | Кому подходит |
|---|---|---|---|---|
| Размеры складного экрана | Внешний экран, внутренний экран, текущее окно | Верстать по size class и bounds, не зашивать пиксели или дюймы | Разрешение со страницы спецификации нужно только чтобы понять порядок величины | Любой код, который всё ещё сравнивает bounds.height == 844 |
| Ориентация | Объявление ориентации внешнего экрана; соотношение сторон внутреннего | Внешний экран соблюдает поддерживаемые ориентации; внутренний не соблюдает, включая Split View | Поза «палатка» заставляет положить закрытый телефон набок | Экраны, которые переключают вёрстку по interfaceOrientation |
| Мультиокно | Split View, вторая сцена, аксессуар сцены | Все приложения встают рядом; новое окно только на внутреннем экране | Запрос новой сцены с внешнего экрана завершится неудачей | Приложения, которые перенесли кнопку «новое окно» с iPad как есть |
| Тесты Xcode | Device Hub в Xcode 27.1 | Три позы, поворот, Split View слева и справа, второй запрос сцены | Пять рабочих дней по дневной ставке равны месяцу на 16 ГБ | Тем, кому нужна таблица регрессии до 23 октября |
Размер: два экрана и окно, которое меняется
Страница спецификации фиксирует цифры, а код вёрстки не должен фиксировать их вслед за ней. Внешний экран — 5,4 дюйма Super Retina XDR, разрешение 1398×2034 при 460 ppi. В закрытом виде корпус 117,8 × 84,1 × 11,3 мм: это высота, ширина и толщина. Внутренний экран — 7,6 дюйма складной Super Retina XDR, разрешение 1878×2670 при 430 ppi, с нанотекстурой. В открытом виде высота по-прежнему 117,8 мм, корпус 117,8 × 164,6 × 5,2 мм, вес 254 г. Apple прямо пишет, что соотношение сторон у обоих экранов одинаковое и контент масштабируется пропорционально. Измерение по стандартному прямоугольнику даёт примерно 5,36 и 7,58 дюйма. Реальная видимая область меньше, скругления лежат внутри прямоугольника.
Вёрстка должна читать size class. Внешний экран как у других iPhone: в портрете regular по вертикали и compact по горизонтали, в альбоме compact по обеим осям. На внутреннем экране и горизонталь, и вертикаль regular, и для боковой панели есть место. Окно может стать ещё меньше. Split View, полусложенная поза и растяжение iPhone Mirroring делают окно неравным целому экрану. Поэтому пиксели со страницы спецификации — порядок величины, а не константа. Масштаб берут из traitCollection.displayScale или displayScale в SwiftUI. Не пишите 1398 или 1878 в сравнение через ==.
Ещё два системных поведения легко смешать с «размером экрана». Скругления идут через Concentricity из iOS 26: в SwiftUI это ConcentricRectangle, в UIKit — UICornerConfiguration. Для сгиба и камеры берут зарезервированные области, а не собственный замер шва. SwiftUI берёт ReservedRegion из геометрического прокси, UIKit использует UIViewReservedRegion. Угол шарнира — отдельный канал: onHingeChange и UIHingeInteraction дают closed, partially open, fully open и непрерывный угол. Apple говорит, что угол годится для анимации, а вёрстка идёт через arrangement и зарезервированные области. Если менять frame по углу, на первой неделе продаж полусложенная поза начнёт дрожать.
Ориентация: внешний экран слушается, внутренний нет
Tech Talk на странице подготовки сводит ориентацию к двум фразам. Ориентация интерфейса на внешнем экране такая же, как у других iPhone, и Duo заодно даёт шанс добрать альбомный режим, потому что закрытый телефон иногда кладут набок, как палатку. Внутренний экран не соблюдает поддерживаемые ориентации, которые вы объявили в Info. Как и с idiom, не делайте ветку вёрстки по ориентации. Чтобы узнать, шире ли окно, чем оно высоко, сравнивайте ширину и высоту, которые у вас есть на самом деле: view.bounds в контроллере, superview.bounds в самом вью, размер GeometryReader в SwiftUI.
Свойства, которые надо вычистить поиском: UIDevice.current.orientation, statusBarOrientation и interfaceOrientation, включая windowScene.effectiveGeometry.interfaceOrientation. Human Interface Guidelines добавляют фразу про непрерывный опыт: при горизонтальном положении элементы управления остаются сбоку и держат ту же вертикальную высоту, а не перестраивают всю страницу, как только телефон повернули. Стандартные системные компоненты делают это сами. Панель, которую вы рисуете сами, этого не делает.
UIRequiresFullScreen по-прежнему действует, но при открытии и закрытии приложение всё равно меняет размер. Другую фразу легче прочитать неверно: Duo уважает объявленные вами поддерживаемые ориентации, однако приложение на внутреннем экране всё равно масштабируется, и в Split View тоже. Поэтому фраза «я заблокировал портрет, внутренний экран не станет шире» неверна. Безопасная зона часто несимметрична. В альбоме и в Split View вертикальный ряд кнопок может оказаться слева. Если умножить левый inset на два и так вывести ширину, кнопка выедет за экран с другой стороны. Вычитайте каждую сторону отдельно.
Мультиокно: Split View по умолчанию, второе окно нет
Tech Talk про мультиокно говорит буквально: все приложения участвуют в многозадачности на Duo, два приложения могут стоять рядом. У тех, кто уже делал смену размера для iPad или iPhone Mirroring, старт лучше. Есть ещё новая раскладка, которая накладывает видео и приложение друг на друга. Её обрабатывают так же, как Split View: всё ещё читают size class и геометрию сцены и не пишут ради неё отдельную ветку «это видео».
Duo — первый iPhone, который поддерживает несколько экземпляров интерфейса одного приложения. То, что умеет открывать новое окно на iPad, умеет и здесь. Разница одна: внешний экран не может создать новое окно, это поведение оставлено внутреннему экрану. Запрос новой сцены обязан обработать неудачу. Используйте UIWindowSceneActivationAction: он сам скрывается, когда новое окно недоступно, вместо кнопки, которая по нажатию показывает ошибку. Аксессуар сцены — третий путь: дополнительный интерфейс появляется на другом экране. CameraCaptureAccessory у камеры кладёт дополнительный интерфейс на внешний экран, основной остаётся на внутреннем во весь экран, и нужна идущая сессия камеры. После закрытия аксессуар недоступен, и кнопку надо выключить через onAvailabilityChange. Это бонус для приложения камеры. Split View — не бонус. Это поведение по умолчанию для всех приложений.
import SwiftUI
struct LaunchCheck: View {
@Environment(\.horizontalSizeClass) private var widthClass
var body: some View {
GeometryReader { proxy in
let wider = proxy.size.width > proxy.size.height
Root(regularWidth: widthClass == .regular, widerThanTall: wider)
}
.onHingeChange { _, context in
guard let hinge = context.hinge, hinge.status == .partiallyOpen else { return }
// hinge.angle drives an effect. Do not lay out from the angle.
playBend(hinge.angle)
}
}
}
Это не шаблон проекта. Фрагмент фиксирует три вещи. При regular-ширине на внутреннем экране можно показать боковую панель, при compact на внешнем её убирают. Портрет и альбом смотрят, какая сторона текущего окна длиннее, и не смотрят на ориентацию. Угол шарнира двигает эффект только в полусложенной позе, вёрстка по-прежнему идёт через size class и bounds. Кнопку второго окна отдайте действию активации, которое скрывается само. Не оставляйте на внешнем экране вечно нажимаемое «новое окно».
Главное сравнение: размер, ориентация, окно и стоимость тестов
Настоящая разница в том, предполагает ли код до сих пор, что у телефона один экран, одна ориентация и одно окно, а не в том, хочет ли дизайнер анимацию сгиба. Обе таблицы ниже используют одни и те же столбцы. Стоимость тестов — долларовые цены M4 на 16 ГБ и 24 ГБ со страницы тарифов этого сайта: день 20,2 и 40,2, неделя 54,5 и 108,5, месяц 100,9 и 200,9. Человеко-дни в этой статье в доллары не переводятся. Ступени срока и сравнение с покупкой лежат в тексте о стоимости адаптации от 13 октября.
| Инструмент | Вход | Что он может | Контекст | Кому подходит |
|---|---|---|---|---|
| Только пересборка на 27.1 | Size class уже есть, синглтона экрана нет | Сверить вертикальные панели, зарезервированные области, фокус полноэкранных картинок, Split View слева и справа | Скан чистый, за день можно закрыть | Приложения, которые уже переживали Split View на iPad или масштабирование iPhone Mirroring |
| Ветка ориентации ещё на месте | interfaceOrientation решает вёрстку | Заменить сравнением ширины и высоты; альбом внешнего экрана отдельно посмотреть в позе «палатка» | Внутренний экран не соблюдает поддерживаемые ориентации, блокировка портрета не мешает ему стать шире | Новости, чтение и плееры с кучей if на альбом |
| Допущение одного окна | «Новое окно» с iPad перенесено как есть | На внешнем экране скрыть вход; на внутреннем обработать неудачу создания; Split View считать поведением по умолчанию | Второй экземпляр законен только на внутреннем экране | Документы, почта, инструменты дизайна |
| Фиксированные пиксели | 844, 1398 или таблица моделей | Пересобрать контейнеры, несимметричный inset, убрать idiom | Разрешение со страницы спецификации нельзя писать в константу | Магазины, которые годами рисовали под одно стекло iPhone |
| Инструмент | Вход | Что он может | Контекст | Кому подходит |
|---|---|---|---|---|
| Apple Silicon, который уже есть | Локальный Xcode 27.1 | Полная матрица симулятора | Добавленная плата за устройство равна 0, но DerivedData спорит с повседневным диском | Машина уже ставит закреплённый вами Xcode |
| M4 16 ГБ посуточно | Удалённый рабочий стол | Один проход Device Hub | 20,2 доллара в день. Пять рабочих дней — 101,0 доллара | Скан чистый, и вы правда закрываете за два дня |
| M4 16 ГБ понедельно | Удалённый рабочий стол | Одна календарная неделя | 54,5 доллара в неделю. Две недели — 109,0 доллара, всё ещё выше месяца | Может затянуться дальше пятницы, но не войдёт во второй месяц |
| Месяц 16 ГБ / 24 ГБ | Удалённый рабочий стол | Весь цикл регрессии; 24 ГБ открывает больше симуляторов сразу | 100,9 или 200,9 доллара в месяц. Пять дней 24 ГБ — 201,0 доллара | Ветка ориентации или пикселей всплывает уже на второй день |
| Xcode Cloud | Облачный архив | Компиляция и подпись | В журнале нет того движения, которым вы тянете индикатор Home | Пакет по-прежнему идёт в облако, позы остаются на удалённом Mac |
Умножьте дневную ставку, и вывод о стоимости тестов — та же арифметика, что и у стоимости переделки. На 16 ГБ 20,2×5 = 101,0, и это уже равно месяцу в 100,9. На 24 ГБ 40,2×5 = 201,0, против месяца в 200,9. Неделя 54,5×2 = 109,0, всё ещё чуть выше одного месяца на 16 ГБ. Поэтому «сначала попробовать по дням» верно только когда вы уверены, что матрица закроется за один или два дня. Если App Resizability на второй день находит цепочку проверок ориентации или UIScreen.main, период оплаты надо сменить на месяц. Восьмой день платит за период, а не за тесты.
Саму матрицу можно разложить по клеткам, а не одной фразой «протестировать сгиб». На каждом из трёх уровней SDK смотрят один раз: пустое поле, обход статус-бара справа или вертикальные панели на весь экран. Затем в симуляторе 27.1 поворачивают закрытое, полусложенное и открытое по одному разу. На внутреннем экране индикатором Home снизу перетаскивают приложение влево, потом вправо, и проверяют, что главная кнопка на месте после того, как вертикальная панель сменила сторону. С внутреннего экрана запрашивают вторую сцену. На внешнем подтверждают, что действие активации исчезло или что неудачный запрос пойман. Растяжение iPhone Mirroring на macOS 27 — добавка, чтобы увидеть окно шире или уже Duo, а не обязательный пункт до старта продаж. Скриншоты меняют после того, как главный путь больше не оставляет пустое поле. Отправка скриншотов Duo ставит на странице продукта значок оптимизации. Новые отправки с апреля 2027 обязаны включать эти скриншоты. Крайний срок магазина — апрель 2027, не крайний срок вёрстки 23 октября.
Как выбрать сценарий
| Если вы | выбираете | Почему |
|---|---|---|
| только на SwiftUI и уже поддерживаете Split View на iPad | локальную машину или день удалённого узла и сначала скан навыка | База уже есть. Остаются вертикальные панели, зарезервированные области, полноэкранные картинки и Split View слева и справа |
| на второй день скан находит ориентацию или UIScreen.main | сразу переходите на месяц и не оплачивайте дневную ставку всю неделю | Пять рабочих дней уже равны месяцу |
| заблокировали портрет и считаете, что внутренний экран можно не трогать | сначала замените это сравнением ширины и высоты, потом говорите о скриншотах | Внутренний экран не соблюдает поддерживаемые ориентации, в Split View он всё равно масштабируется |
| ведёте документы или почту, и на iPad есть новое окно | на внешнем экране скрываете вход, на внутреннем обрабатываете неудачу | Новое окно нельзя создать на внешнем экране |
| делаете приложение камеры и хотите суфлёр | сначала проходит Split View, аксессуар добираете потом | Аксессуару нужны полный внутренний экран и сессия камеры; Split View — поведение по умолчанию для всех приложений |
| хотите только сменить скриншоты App Store | сначала проходите 27.1, потом меняете картинки | Внутренний экран старого SDK — пустое поле, значок не превращает пустое поле в адаптацию |
| в офисе нет Mac | арендуете один и сначала смотрите sw_vers и xcodebuild -version | Когда система не совпадает, уплаченный день не даёт ни одной годной клетки |
Устройство держите на отдельной строке. Ощущение шарнира и пункты, которые симулятор не повторяет, требуют одной машины. Цену берите со страницы Apple Store в момент заказа и не размазывайте эту строку по каждому тикету Xcode. Duo на каждом столе не удаляет UIScreen.main и не даёт внешнему экрану внезапно создавать новое окно.
Рекомендуемые связки
A — независимый разработчик, вёрстка уже следует за размером: Xcode 27.1, локальная машина или один день удалённого узла. Пусть помощник кода выполнит «get my app ready for iPhone Duo», или в терминале выполните xcrun agent skills export и отдайте навык другому агенту. Если скан пуст, идите в Device Hub: закрытое, полусложенное, открытое, каждое с одним поворотом, затем перетащите Split View влево и вправо. На внешнем экране один раз нажмите «новое окно» и убедитесь, что вход исчез. Скриншоты магазина смотрите в превью App Store Connect для Duo. Ради этого прохода тестов машину покупать не нужно. Месячная плата узла — на странице цен.
B — небольшая команда, ориентация и свои панели ещё на месте: Первая неделя — только скан и синглтон экрана. Возьмите неделю аренды или сразу месяц и не дайте дневной ставке докатиться до седьмого дня. Вторая неделя заменяет ветки ориентации сравнением ширины и высоты, а четыре стороны безопасной зоны пишет отдельно. Третья неделя оставляет по одному кадру Split View слева и справа и записывает путь неудачи второй сцены в регрессию. CI по-прежнему идёт через существующий сборщик. Сессия, где человек смотрит на открытие и закрытие, — тот же удалённый Mac. Месяц на 24 ГБ стоит 200,9 доллара и нужен только когда Duo и остальные симуляторы идут параллельно. Пять раз по 40,2 уже равны месяцу этой ступени.
C — отправка нужна на неделе старта продаж: Сегодня 15 октября, предзаказ начинается завтра, продажи — 23 октября. Обещать можно вот что: на 27.1 главный путь без пустого поля, вертикальные панели не закрывают главную кнопку, после смены стороны Split View кнопка на месте, и на внешнем экране не всплывает негодное новое окно. Анимацию шарнира и аксессуар камеры, которые вы не успеваете, не пишите в текст магазина. Подключение — на странице аренды. Версия системы и аккаунт идут через центр помощи. Не предполагайте, что в образе уже предустановлен Xcode 27.1.
Частые ошибки
- Записать запуск как готовую адаптацию. Внутренний экран SDK iOS 26 — центрированное пустое поле. Пользователь не прочитает пустой край как «адаптация в процессе».
- Записать 1398 или 1878 со страницы спецификации в константу. Это порядок величины в пикселях. В Split View и в полусложенной позе окно меньше, и масштаб тоже не следует писать руками.
- Судить портрет и альбом внутреннего экрана по ориентации. Внутренний экран не соблюдает поддерживаемые ориентации. Портрет и альбом берите из соотношения сторон текущего окна.
- Считать, что UIRequiresFullScreen выключает Split View и открытие с закрытием. Ключ по-прежнему действует, но при открытии и закрытии размер всё равно меняется. Объявленная ориентация тоже не мешает масштабированию внутреннего экрана.
- Оставить на внешнем экране вечно нажимаемое новое окно. Новое окно только на внутреннем. Если неудачу не обработать, при закрытии выскочит ошибка.
- Верстать по углу шарнира. Угол годится для анимации. Вёрстка идёт через size class, зарезервированные области и arrangement.
- Оплатить дневную ставку всю неделю. Пять рабочих дней на 16 ГБ уже равны месяцу. Восьмой день платит за период тарифа.
Семь шагов
- Соберите одни и те же исходники против каждого SDK, который можете поставить, и сначала запишите, что видите: пустое поле, обход статус-бара справа или вертикальная панель на весь экран. Цель зафиксирована на 27.1.
- Глобально найдите
UIScreen.main,UIDevice.current.orientation,statusBarOrientation,interfaceOrientation,userInterfaceIdiomи константы размера вроде 844, 1398 и 1878. - В Xcode попросите помощника кода запустить App Resizability или выполните
xcrun agent skills export. Навык находит большую часть. То, чего он не находит, добирает список выше. - Откройте iPhone Duo в Device Hub. Поверните закрытое, полусложенное и открытое по одному разу. Затем индикатором Home перетащите приложение на внутреннем экране влево и вправо. На каждую клетку главного пути оставьте один кадр.
- С внутреннего экрана запросите вторую сцену и убедитесь, что и успех, и неудача пойманы. На внешнем экране подтвердите, что
UIWindowSceneActivationActionскрывается сам. - Посмотрите, не закрывает ли вертикальная панель главную кнопку, не записаны ли левый и правый inset как равные, на месте ли сюжет полноэкранной картинки и не давит ли зарезервированная область на элементы управления в полусложенной позе. Угол шарнира проверяйте только как анимацию, не как вёрстку.
- Выберите период оплаты: один или два дня могут быть дневной ставкой, а если скан уже стал грязным, переходите на месяц. Перед заказом выполните на узле
sw_versиxcodebuild -version. После того как главный путь чист, меняйте скриншоты Duo и смотрите их в превью Connect. Не масштабируйте холст другого iPhone насильно.
FAQ
Откроется ли старое приложение без изменений кода в день старта продаж iPhone Duo?
Откроется. Сборка на SDK iOS 26 или старше после раскрытия сидит по центру с пустым полем, а после закрытия контент уходит влево от статус-бара и камеры. Запуск не равен законченной адаптации. Чтобы заполнить экран и использовать вертикальные панели, нужен SDK iOS 27.1. Split View и второе окно тоже не становятся правильными только потому, что приложение открывается.
Если альбом объявлен только в Info, будет ли внутренний экран его соблюдать?
Внешний экран соблюдает объявленные вами поддерживаемые ориентации, и позу «палатка» стоит посмотреть отдельно. Внутренний экран не соблюдает, и в Split View приложение всё равно масштабируется. UIRequiresFullScreen не останавливает смену размера от открытия и закрытия. Вёрстка сравнивает ширину и высоту текущего окна.
Мультиокно — это выбор?
Split View — не выбор. Apple прямо пишет, что все приложения встают рядом, и наложение видео с приложением идёт через тот же size class. Новое окно можно создать только на внутреннем экране. Вход на внешнем экране должен использовать UIWindowSceneActivationAction, который скрывается сам. Аксессуар камеры на внешнем экране — бонус: ему нужны полный внутренний экран и идущая сессия камеры.
Если есть только симулятор, как считать стоимость тестов?
Для главного пути вёрстки хватит. Apple называет симулятор iPhone Duo в Xcode 27.1 лучшим способом проверить полный опыт. День M4 на 16 ГБ стоит 20,2 доллара, пять рабочих дней равны месяцу в 100,9 доллара. Если скан на второй день становится грязным, не платите дневную ставку до восьмого дня. 24 ГБ — это 40,2 доллара в день и 200,9 доллара в месяц, и пять дневных ставок так же встают вровень с месяцем. Ощущение шарнира всё ещё требует устройства. Эту строку не размазывайте по тикету симулятора.
Если Mac нет, можно ли ещё протестировать до старта продаж?
Xcode 27.1 нельзя запустить в Windows. Сначала подтвердите, что macOS узла ставит закреплённый вами Xcode. Системные требования остаются на странице требований Xcode у Apple. Пункт про растяжение iPhone Mirroring страница подготовки относит к macOS 27. Удалённый узел подключают со страницы аренды, цену берут со страницы цен.
Итог
iPhone Duo поступает в продажу 23 октября. Порог повторной адаптации — не «открывается ли». Сначала посмотрите, читает ли размер всё ещё весь экран, решает ли ориентация всё ещё внутренний экран и можно ли всё ещё нажать новое окно на внешнем экране. Если эти трое ворот чисты, стоимость тестов — один проход матрицы симулятора, а когда пять дневных ставок равны месяцу, переходите на месяц. Небольшое приложение, которое уже подстраивается, использует локальную машину или короткую аренду. Там, где ещё живы допущения об ориентации, пикселях и одном окне, месяц удерживает регрессию. Значок на скриншоте не лечит пустое поле. Удалённые узлы смотрите на странице аренды и странице цен. Аккаунт и версия системы идут через центр помощи.
Дальше
- Как сравнить срок переделки и покупку Mac: стоимость адаптации от 13 октября →
- Командный iOS CI/CD: Xcode Cloud против удалённого Mac →
- Слежение за датой выхода, когда имени ещё не было →
Split View и открытие с закрытием в Xcode 27.1 требуют Mac, чья версия системы совпадает
Симулятор iPhone Duo живёт в Xcode, не в Windows. Удалённый Mac подходит, чтобы прогнать закрытое, полусложенное, открытое и Split View слева и справа, а затем разобрать среду. До заказа сверьте, ставит ли macOS узла закреплённый вами Xcode.