Ошибка при проверке: приложение запускается в симуляторе, но позы, состояния экрана и материалы выпуска ещё не подтверждены.

Быстрое решение: используйте Xcode 27.1 и удалённый Mac для сборки и доступных проверок в Device Hub, но не приравнивайте результат симулятора к приёмке на реальном устройстве; перед выпуском отдельно закройте контрольные пункты по интерфейсу, интерактивности, ограничениям, доказательствам и материалам App Store.

Кому пригодится: разработчикам iOS, проверяющим расположение элементов и взаимодействия в разных позах. Специалистам QA и выпуска, которым нужно связать результаты тестирования с конкретной сборкой. Инженерам CI, выбирающим, что выполнять на удалённом Mac, а что оставлять для физического устройства.

Последняя проверка: 14 октября 2026 года. Статус устройства и поддержки сверяйте с объявлением Apple о подготовке приложений и отправке материалов для iPhone Duo: дата выхода и поддержка инструментов могут измениться, поэтому перед публикацией повторно откройте официальные требования.

Сначала зафиксируйте базовую совместимость

Apple указывает, что iPhone Duo планируется выпустить 23 октября 2026 года, а Xcode 27.1 предоставляет средства разработки для него. В частности, в Device Hub можно проверять различные позы и ориентации. Эти сведения относятся к официально объявленной поддержке, а не к результатам независимой проверки уже выпущенного устройства. Источник для даты и подготовки — объявление Apple для разработчиков, а ограничения конкретной версии следует читать в примечаниях к выпуску Xcode 27.1 RC.

Не делайте вывод о совместимости только потому, что проект открывается или компиляция стартует. На удалённом Mac зафиксируйте версии и состояние именно той среды, в которой создаются доказательства:

xcodebuild -version
xcode-select -p
xcrun simctl list devices

Сохраните вывод команд вместе с номером коммита и параметрами сборки. Отдельно укажите версию SDK, доступные среды симулятора и активный путь Xcode. Если у команды установлено несколько версий инструментов, укажите, какая из них выбрана для задания: наличие нужной версии на диске ещё не доказывает, что именно она собрала приложение.

Минимальная версия macOS для установленного Xcode и другие системные условия могут зависеть от актуального выпуска. Поэтому сверяйте среду по таблице системных требований Xcode, а известные ограничения и доступность функций — по примечаниям к соответствующей версии. Не переносите требования от одной сборки Xcode на другую и не записывайте непроверенную конфигурацию как базовую.

Для аудита достаточно короткой записи: коммит, активный Xcode, SDK и runtime симулятора, схема сборки, результат компиляции и ссылка на тестовые артефакты. Если один из пунктов нельзя получить на удалённом узле, обозначьте его как непроверенный, а не заменяйте предположением.

Шаг проверки поз: составьте матрицу, а не одну красивую картинку

Откройте приложение в Device Hub и составьте перечень поз и ориентаций, доступных в установленной конфигурации. Сверьте его с официальной документацией Device Hub и рекомендациями Apple по подготовке приложения для iPhone Duo. Не приписывайте устройству состояние, которое инструмент не показывает: доступность варианта в документации и поведение конкретной сборки — не одно и то же.

Для каждой поддерживаемой комбинации проверьте не только начальный экран. Переключите позу, дождитесь завершения перестроения и проверьте:

  • не обрезаются ли заголовки, кнопки, индикаторы и области прокрутки;
  • перестраиваются ли навигация и ключевые панели без перекрытия содержимого;
  • остаётся ли доступен основной сценарий, ради которого пользователь открыл экран;
  • сохраняются ли введённые данные, выбранная вкладка и позиция прокрутки, если проект обещает их сохранение;
  • можно ли вернуться к исходному состоянию без повторного запуска приложения.
Снимок экрана помогает зафиксировать конкретный результат, но не заменяет проверку перехода. В доказательстве укажите исходную позу, действие, итоговый экран и ожидаемое поведение. Для проблемы с мерцанием или потерей состояния приложите запись последовательности действий, если она доступна. Снимок без контекста может показать дефект, но не объясняет, при каком переходе он возникает.

Важно: если Device Hub показывает нужный вариант, это подтверждает возможность выполнить проверку в соответствующей среде Xcode; это не означает, что все датчики, системные эффекты и физические свойства устройства воспроизведены симулятором.

Затем проверьте интерактивность и сохранение состояния

Статичный экран может выглядеть корректно и всё же оказаться непригодным после изменения позы. Пройдите основной пользовательский маршрут до переключения, сразу после него и при возврате в предыдущее состояние. Заранее определите ожидаемое поведение для каждого шага: что должно сохраняться, что может перестраиваться, а что должно сбрасываться намеренно.

Для навигации проверьте открытие и закрытие основных разделов, доступность кнопок и предсказуемость переходов назад. Для ввода — фокус, появление клавиатуры, прокрутку к активному полю и сохранение текста после перестройки. Для списков и длинных экранов — сохранение позиции, видимость выбранной записи и отсутствие скачка к началу без явного требования продукта. Для ключевого бизнес-сценария повторите операцию после переключения позы и убедитесь, что экран не показывает устаревшее состояние.

Если дизайн предполагает разные компоновки, проверяйте не только размеры, но и смысловую иерархию: остаётся ли первичное действие заметным, не становятся ли второстепенные элементы недоступными, можно ли понять, на каком этапе находится пользователь. Зафиксируйте ожидаемый результат в тесте или критерии приёмки до прогона; иначе команда рискует объявить любой визуально правдоподобный экран успешным.

На удалённом Mac автоматизируйте воспроизводимые действия, которые не требуют физического ввода или уникальной аппаратной функции. Ручную проверку оставьте для поведения, которое симулятор не подтверждает. Полезно хранить вместе с отчётом снимки до и после переключения, шаги воспроизведения и сведения о версии приложения. Тогда разработчик сможет повторить дефект, а QA — отличить регрессию от изменения ожидаемого дизайна.

Оцените, чем подтверждён каждый критерий

Выбирайте способ проверки по вопросу, на который требуется ответ. Запуск на симуляторе, физическое устройство и просмотр материалов App Store подтверждают разные свойства; один метод не должен автоматически закрывать все остальные.

<
Вариант проверкиЧто можно подтвердитьЧто не следует считать подтверждённымОценка применимости
Сборка на удалённом MacКомпиляцию проекта при зафиксированных версиях Xcode, SDK и настройкахКорректность интерфейса во всех позах и работу аппаратных функцийВысокая для воспроизводимой сборки
Device Hub и симуляторДоступные варианты поз и ориентаций, поведение интерфейса и часть автоматизированных сценариевПолный опыт физического устройства и каждую системную интеграциюВысокая для проверки доступных состояний
Физическое устройствоПоведение тех функций и взаимодействий, которые воспроизводимы на доступном устройствеАвтоматически — все комбинации и все пользовательские маршрутыНеобходимо для непокрытых симулятором рисков
Просмотр страницы продуктаСоответствие подготовленных материалов требованиям и отображение в интерфейсе отправкиРаботу приложения и корректность его сценариевВысокая для проверки публикационных материалов
Оценка в последнем столбце качественная, а не результат измерения производительности. Используйте её как подсказку при распределении задач, а не как балл релизной готовности. Apple отдельно описывает запуск на симуляторах и физических устройствах в руководстве [по выполнению приложения на симулированном или реальном устройстве](https://developer.apple.com/documentation/Xcode/running-your-app-on-simulated-or-physical-devices). Это разделение принципиально: если проверка недоступна в выбранном симуляторе, у неё должен быть другой способ подтверждения либо явный статус «не проверено».

Отметьте ограничения расширений и системных функций

Составьте перечень App Extension, системных диалогов, функций устройства и процессов, которые зависят от поведения iOS или аппаратных возможностей. Напротив каждого пункта напишите, что именно проверяется симулятором, что проверяется физически и какое доказательство приложено. Если Xcode 27.1 RC указывает известное ограничение для нужного сценария, перенесите его в риск выпуска со ссылкой на официальные примечания к Xcode 27.1 RC.

Не записывайте расширение как прошедшее проверку только потому, что основное приложение собирается. Аналогично, появление экрана или системного диалога не подтверждает весь процесс: важны разрешения, возврат в приложение, обработка отмены и восстановление после ошибки. Если тест не может быть исполнен, укажите причину, альтернативный способ проверки и владельца следующего действия.

Разделяйте три статуса:

  • Проверено: есть повторяемый тест и сохранённый результат.
  • Ограниченно проверено: подтверждена только часть поведения, а остаточный риск назван явно.
  • Не проверено: отсутствует требуемая возможность, физическое устройство или доступный сценарий.
Такая классификация полезнее общего «всё работает»: она показывает, какой именно риск остаётся перед отправкой версии и кто должен его закрыть.

Соберите доказательства для удалённого CI и задайте порог выпуска

На удалённом Mac можно разделить работу на сборку, автоматические тесты и проверку доступных в симуляторе состояний. Привяжите каждый результат к исходному коммиту и параметрам сборки: сохраните лог, статус тестов и тестовый пакет, если тестовый запуск его создал. Apple объясняет, как читать результаты, в документации по запуску тестов и интерпретации результатов.

Для воспроизводимого задания используйте явный путь для результата, например:

xcodebuild test \
  -scheme App \
  -destination 'platform=iOS Simulator,name=...' \
  -resultBundlePath artifacts/Acceptance.xcresult

Подставляйте только устройство назначения, которое действительно доступно в установленной среде. Не копируйте имя симулятора из чужого лога без проверки: runtime, список устройств и допустимые назначения зависят от конфигурации Xcode. Если запуск падает до выполнения тестов, отделяйте сбой окружения от провала тестируемого сценария.

К каждому доказательству добавьте метаданные: коммит, схему, выбранное назначение, результат сборки и перечень поз, которые фактически проверены. Снимки должны быть связаны с тестовым сценарием или дефектом, а не лежать отдельной папкой без пояснения. Если тестовый пакет неполон или не выгружен, пометьте это как проблему самого доказательства — успешная строка в консоли не восстанавливает отсутствующие результаты.

Для решения о выпуске удобно применять три состояния: готово, заблокировано, требуется физическая проверка. Выпуск не следует считать полностью принятым, если критический сценарий помечен как «не проверено» или материалы продукта ещё не просмотрены в App Store Connect. Решение должно ссылаться на конкретные проверки и известные ограничения, а не только на зелёный статус CI.

FAQ: примените критерии к типовым ситуациям

Как проверить адаптацию интерфейса iPhone Duo в Xcode 27.1? Зафиксируйте активный Xcode и доступную среду, затем проверьте каждую отображаемую в Device Hub позу и ориентацию. Пройдите ключевые действия до и после перестройки, сохраните снимки и результаты теста. Успешный прогон подтверждает только проверенное состояние симулятора, а не весь набор функций физического устройства.

Можно ли проверять разные позы через удалённый Mac? Можно, если среда удалённого Mac совместима с установленным Xcode и предоставляет доступ к графическому симулятору. Используйте Device Hub для проверки доступных состояний, а CI — для сборки и повторяемых тестов. Функции, которые зависят от физического устройства или недоступны в симуляторе, внесите в отдельный список ручной проверки.

Завершает ли успешный прогон Device Hub приёмку на устройстве? Нет. Device Hub не превращает симулятор в физическое устройство и не подтверждает автоматически аппаратно-зависимое поведение, системные взаимодействия или весь пользовательский опыт. Считайте прогон доказательством только для выполненных сценариев; непокрытые функции должны получить иной способ подтверждения либо остаться явно обозначенным риском выпуска.

Что проверить в материалах App Store перед публикацией? Сверьте снимки экрана с действующими требованиями App Store Connect, проверьте соответствие изображений фактической версии интерфейса и просмотрите страницу продукта в интерфейсе отправки. По официальному объявлению Apple отделите уже обязательные требования от рекомендаций и условий, которые могут вступить в силу позднее. Не отправляйте неподтверждённый набор как окончательный.

Закройте публикационные материалы и зафиксируйте решение

Проверьте снимки экрана и другие подготовленные материалы отдельно от тестирования приложения. Сверьте размеры и прочие ограничения по спецификации снимков экрана App Store Connect, затем откройте предварительный просмотр страницы продукта и убедитесь, что изображения соответствуют актуальной версии интерфейса. Не делайте вывод, что всякий подготовительный материал уже обязателен к отправке: условия и даты действия требований проверяйте в объявлении Apple для подготовки iPhone Duo.

<
Контрольный пунктДоказательство для выпускаУсловие блокировки
Совместимость инструментовВерсии Xcode, SDK, runtime и активный путь XcodeТребования среды не совпадают с проектной конфигурацией
Позы и компоновкиМатрица проверенных состояний, снимки или записиЕсть обрезание, перекрытие или непроверенная критическая поза
ИнтерактивностьРезультат прохождения ключевых маршрутов и состояние до/после перестройкиОсновное действие недоступно или теряется значимое состояние
Ограниченные функцииПеречень проверок симулятора и отдельно назначенных проверок устройстваАппаратно-зависимая функция ошибочно отмечена как пройденная
CI и тестовые результатыЛог, пакет результатов и привязка к коммитуАртефакт отсутствует либо не соответствует проверяемой сборке
Материалы продуктаПроверка спецификаций и предварительного просмотраМатериал не соответствует актуальному интерфейсу или требованию
Итоговая запись должна отвечать на три вопроса: что проверено удалённо, что требует физического устройства и какой риск остаётся открытым. Если второе не входит в текущий объём, это не повод объявлять тест успешным; это повод ограничить решение и назначить владельца проверки до отправки версии.

Если у вас уже есть Mac с совместимой системой и нужным Xcode, нет необходимости переносить на удалённую машину все этапы: оставьте локально те проверки, для которых важны физический интерфейс или периферия. Если же текущий вариант — Linux-сервер, он не заменит macOS-инструменты сборки; а покупка отдельного Mac может быть избыточной, когда среда нужна только для ограниченного цикла адаптации и CI. В таком случае аренда Mac у MACGPU может дать временную удалённую macOS-среду без покупки собственного компьютера. Перед выбором сверьте доступность нужного Xcode и режим работы с вашим тестовым процессом; для планирования самой среды используйте руководство по Mac на Apple Silicon.