Согласно примечаниям Apple к выпуску iOS/iPadOS 27, приложение, собранное с SDK 27.0 или новее, должно содержать конфигурацию экрана запуска. Если её нет, такая сборка будет отклонена при приёме App Store приложений, собранных с этим SDK.
Риск: настройка может присутствовать в исходниках, но отсутствовать в приложении из фактически отправляемого Archive.
Быстрое решение: проверьте допустимый ключ в итоговом Info.plist, охват целей, содержимое Archive и реальный запуск приложения.
Этот материал для независимых разработчиков, переводящих существующее приложение на SDK iOS 27, и небольших команд, готовящих релиз.
Он также пригодится, если экран запуска построен на Storyboard, SwiftUI или программной конфигурации.
Если сборка выполняется на удалённом Mac или в CI, проверяйте фактический Archive, а не только настройки проекта.
Последняя проверка: 20 октября 2026 года. Требование сверено с примечаниями Apple к iOS/iPadOS 27, а допустимые конфигурации и способы проверки — с официальной документацией Apple для экрана запуска и Info.plist.
Область действия требований к экрану запуска iOS 27
Требование связано с SDK, которым собрано приложение, а не просто с минимальной версией iOS, указанной в настройках проекта. Если вы создаёте iOS- или iPadOS-приложение с SDK 27.0 либо более поздним SDK, включите в его Info.plist подходящую конфигурацию экрана запуска. Если её нет, согласно примечаниям Apple такая сборка будет отклонена, когда App Store начнёт принимать приложения, собранные с SDK 27.0. Apple не следует приписывать неподтверждённую дату начала приёма: перед отправкой сверяйте актуальные примечания к версии.
Нужно ли немедленно пересобирать каждое опубликованное приложение? Нет: не переносите требование на все уже выпущенные приложения и сборки, созданные с более ранним SDK. Запланируйте проверку при переходе проекта на SDK 27.0 или новее и не смешивайте три разных параметра: SDK, использованный при сборке; минимальную версию ОС, которую поддерживает приложение; систему, установленную на устройстве пользователя. Они отвечают на разные вопросы. Само по себе снижение минимальной версии развертывания не заменяет проверку фактического SDK сборки.
В технической записке TN3208 о подготовке экрана запуска изложены требования и рекомендации по подготовке. Используйте её вместе с примечаниями к выпуску, а не вместо них: первые помогают понять ожидаемую конфигурацию, вторые определяют, к каким сборкам и условиям приёма относится требование.
Наличие корректного ключа — необходимая часть приёмки, но не доказательство полной готовности релиза. Настройка должна попасть в приложение, которое вы архивируете и отправляете, а отображаемый экран нужно проверить отдельно. Не считайте, что успешная сборка автоматически подтверждает оба условия: компиляция, содержание пакета и визуальный результат — разные объекты проверки.
Конфигурация Info.plist
Сначала выясните, каким способом в проекте объявлен экран запуска. В документации Apple по настройке экрана запуска в Xcode перечислены допустимые ключи: UILaunchStoryboardName, UILaunchStoryboards, UILaunchScreen и UILaunchScreens. Для проверки требования важен не факт присутствия похожего параметра в каком-либо исходном файле, а применимая конфигурация в приложении, которое будет отправлено.
Ключ в Info.plist |
Что проверить | Когда особенно важна проверка |
|---|---|---|
UILaunchStoryboardName |
Указан ли используемый Storyboard и доступен ли он в собранном приложении | Проект назначает экран запуска через Storyboard |
UILaunchStoryboards |
Содержится ли ожидаемое описание Storyboard для конфигурации приложения | Проект действительно использует этот ключ |
UILaunchScreen |
Есть ли применимая декларация экрана запуска | Экран задаётся через настройки запуска в Info.plist |
UILaunchScreens |
Содержится ли нужная конфигурация для используемого варианта приложения | В проекте настроен именно этот механизм |
Названия и применимость ключей сверяйте с документацией Apple. Не добавляйте все четыре ключа «на всякий случай»: неподходящие или дублирующие настройки способны усложнить диагностику, но не доказывают, что нужный экран включён в сборку.
Какие ключи подходят для проверки? Проверяйте тот ключ или те ключи, которые применимы к выбранному способу конфигурации. Для Storyboard это может быть один из Storyboard-ключей; для другого поддерживаемого способа — соответствующий ключ запуска. Если вы не уверены, какой механизм использует проект, сопоставьте настройки Xcode с документацией Apple по управлению Info.plist, а затем подтвердите результат в приложении из Archive.
Не ограничивайтесь поиском по одному файлу в репозитории. Xcode может формировать итоговый Info.plist на основе настроек выбранной цели и конфигурации сборки, поэтому открытый вами файл необязательно является источником значений для отправляемого приложения. Просмотрите настройки основной цели, схему сборки и конфигурацию, которую применяете для публикации. Если в проекте используются переменные сборки или сгенерированный список свойств, проверяйте именно результат их применения.
При ручном аудите полезно зафиксировать, откуда берётся настройка: из файла проекта, отдельного plist-файла либо значений, сформированных на этапе сборки. Это помогает избежать ситуации, когда исправление внесено в файл, который не подключён к релизной цели. Не меняйте несколько источников конфигурации одновременно без необходимости: иначе при расхождении результатов будет сложнее установить, какой именно параметр попал в пакет.
Охват целей и конфигураций проекта
В многокомпонентном проекте сначала определите, что именно вы отправляете в App Store. Основное приложение, тестовая цель, расширение и вспомогательные приложения могут иметь разные настройки и отдельные Info.plist. Проверка одного объекта не распространяется автоматически на остальные цели, которые войдут в поставку.
| Объект проверки | Что сверить в проекте | Как трактовать результат |
|---|---|---|
| Основная цель приложения | Какой файл или набор настроек формирует её Info.plist |
Это основной объект проверки для отправляемого приложения |
| Конфигурация публикации | Какая схема, конфигурация сборки и SDK применяются при Archive | Результат должен относиться к сборке, предназначенной для отправки |
| Тестовые цели | Используются ли они для тестирования, а не как отдельное приложение | Их настройка не заменяет проверку основного приложения |
| Расширения и дополнительные цели | Входят ли они в поставку и какие настройки у них заданы | Учитывайте их отдельно, не считая настройку расширения подтверждением для основного приложения |
Перед Archive составьте перечень приложений и вариантов, которые фактически будут отправлены, и сопоставьте их с целями проекта. Если у вас несколько вариантов приложения или релизных конфигураций, проверьте каждый вариант, который может попасть в отправку. Не считайте, что одинаковое имя схемы гарантирует одинаковые настройки: сравнивайте параметры конфигурации и сформированный пакет.
Для первичного аудита можно получить настройки выбранной схемы и конфигурации:
xcodebuild -showBuildSettings \
-scheme "ИмяСхемы" \
-configuration "Release"
Подставьте реальные имена схемы и конфигурации из проекта. Сохраните вывод рядом с записью о сборке, чтобы можно было сопоставить настройки с проверенным Archive. Команда показывает параметры выбранной схемы и конфигурации, но не подтверждает сама по себе, что итоговый .app содержит нужное значение. Если сборка использует дополнительные параметры, например отдельную конфигурацию для публикации, повторите аудит именно для неё.
Проверка Archive и экспортированного приложения
Archive — более надёжный объект проверки, чем снимок экрана настроек проекта: именно в собранном приложении видно, какие значения оказались в Info.plist. Перед архивированием зафиксируйте версию Xcode, выбранный SDK, схему и конфигурацию. Статус выпусков Xcode сверяйте на официальной странице Apple Developer Releases и в примечаниях к выпускам Xcode, а не предполагайте, что установленная среда автоматически соответствует актуальным требованиям.
Как проверить конфигурацию внутри Archive? Найдите пакет приложения в архиве и прочитайте его Info.plist. Если путь к Archive известен, используйте команду:
plutil -p "/путь/к/Приложение.xcarchive/Products/Applications/Приложение.app/Info.plist"
В выводе найдите фактически применимый ключ запуска. Не проверяйте только исходный Info.plist в репозитории: он может отличаться от обработанного файла в готовом .app. Если проверяете экспортированный вариант, убедитесь, что открыли именно тот пакет, который планируете загрузить. Правила работы с архивом и распространения приложения описаны в документации Apple о подготовке приложений к тестированию и выпуску.
Для каждого Archive отметьте в рабочей записи:
- [ ] Путь указывает на новый Archive, созданный после последнего изменения проекта.
- [ ] Проверяется
.appосновной цели, предназначенной для публикации. - [ ] В результирующем
Info.plistприсутствует применимый ключ экрана запуска. - [ ] Зафиксированы схема, конфигурация сборки, версия Xcode и SDK.
- [ ] При проверке экспортированного приложения выбран правильный вариант поставки.
Если настройку исправили после создания Archive, старый архив не подтверждает новую сборку. Создайте новый Archive, повторно проверьте его Info.plist и сохраните новый результат. Иначе в отчёте будет доказательство для предыдущего состояния проекта, а не для релизного артефакта. То же правило применяйте, если после проверки изменились файлы ресурсов, настройки цели или схема сборки.
Успешное открытие проекта и прохождение компиляции не заменяют проверку
Info.plistвнутри Archive. Эти проверки отвечают на разные вопросы: собирается ли проект и содержит ли готовое приложение требуемую конфигурацию.
Проверка реального экрана при запуске
Статическая декларация не подтверждает, что пользователь увидит корректный экран. Запустите приложение на целевой конфигурации симулятора или доступном устройстве и проверьте именно холодный запуск, то есть старт после завершения приложения, а не возврат из фона. Запишите, какой вариант установлен: визуальная проверка другой сборки не подтверждает поведение текущего Archive.
Экран запуска должен согласовываться с начальным интерфейсом приложения. Проверьте, нет ли резкого скачка фона, положения логотипа, ключевого изображения или других элементов при переходе к первому экрану. Если приложение поддерживает разные размеры интерфейса или ориентации, проверьте релевантные варианты, используемые вашим продуктом. Одна удачная проверка не доказывает корректное отображение в условиях, которые вы не тестировали.
Достаточно ли добавить конфигурацию и завершить проверку? Нет. Добавление ключа закрывает проверку декларации, но не доказывает, что макет корректен и экран выглядит приемлемо. Для оценки композиции и поведения используйте руководство Apple по проектированию экранов запуска, а при неожиданном отображении — техническую записку TN3118 по диагностике экрана запуска.
Не делайте вывод о визуальном соответствии только по статичному изображению в Storyboard или панели предпросмотра. Фактическое размещение элементов зависит от компоновки и условий запуска. Сохраните короткую запись о проверке: тестируемый вариант приложения, симулятор или устройство, результат холодного запуска и обнаруженные расхождения с первым экраном. Такой журнал помогает повторить проверку после исправлений и не спутать результат старой сборки с новым.
Если экран не соответствует проектному замыслу, сначала исправьте компоновку, затем создайте новый артефакт и повторите тестирование. Успешное чтение Info.plist не превращает визуальную проблему в пройденную приёмку. Аналогично, удачный запуск не доказывает наличие допустимого ключа в пакете: обе части проверки должны иметь собственное подтверждение.
Публикационные доказательства и критерий готовности
Для отправки подготовьте связную запись о результатах, относящихся к одной версии приложения. Укажите используемые Xcode и SDK, схему и конфигурацию, перечень проверенных целей, путь к Archive, найденный ключ Info.plist и итог визуального запуска. Если релиз собирается удалённо или через CI, сохраните сведения об окружении и способ получения артефакта: иначе будет трудно установить, какой именно результат был проверен.
Перед отправкой пройдите полный чек-лист:
- [ ] Сверены актуальные примечания Apple; подтверждено, что выбранный SDK подпадает под требование.
- [ ] Определены все приложения и релизные конфигурации, которые будут отправлены.
- [ ] Установлен используемый механизм экрана запуска и применимый ключ в конфигурации целевой сборки.
- [ ] После последнего изменения создан новый Archive.
- [ ] Проверен
Info.plistприложения внутри этого Archive. - [ ] Установлен именно проверенный вариант и испытан холодный запуск.
- [ ] Сохранены сведения о среде сборки и результаты обеих проверок.
- [ ] После любой ошибки или изменения настроек пересоздан Archive и повторены проверки.
Что делать, если в Archive нет ключа? Не отправляйте этот артефакт, ссылаясь на исходный plist или настройки интерфейса Xcode. Определите, какая цель и конфигурация сформировала пакет, исправьте источник настроек, пересоберите приложение и проверьте новый Archive. Если ключ присутствует, но экран выглядит неверно, устраните визуальную проблему и повторите тестирование уже на фактическом варианте приложения.
В проверке релиза полезно разделять три результата: конфигурация объявлена, конфигурация попала в пакет, экран проверен при запуске. Такой подход показывает, на каком шаге возникла проблема, и не позволяет случайно выдать проверку исходников за подтверждение готовности приложения. Для небольшой команды это также упрощает передачу релиза между разработчиком, ответственным за сборку, и человеком, который отправляет приложение.
Если вы готовите публикацию на удалённом Mac, заранее выясните, как устроены доступ к среде, передача проекта и получение Archive. В описании сценариев удалённой работы можно оценить, подходит ли такой формат вашему процессу. Сравнивая его с локальной машиной или собственным CI, учитывайте расходы, контроль над сертификатами, сохранение артефактов, доступ к симуляторам и повторяемость конфигурации. Текущие условия использования сервиса можно проверить на странице тарифов KVMFLUX.
Покупка собственного Mac уместна, если вы регулярно выполняете тяжёлые сборки, нуждаетесь в локальных физических подключениях и готовы самостоятельно обслуживать машину. Но для разовой миграции SDK или проверки релизного Archive покупка означает расходы на оборудование, поддержку отдельной среды и её дальнейшее обслуживание. Если своего Mac сейчас нет, а для сборки и проверки нужен временный доступ к Xcode, аренда Mac у KVMFLUX может оказаться практичнее, чем приобретение компьютера только ради этого этапа. Сначала определите необходимый формат доступа и срок работы, затем оцените условия заказа Mac у KVMFLUX.
Проверьте сборку iOS 27 на выделенном Mac
Арендуйте в KVMFLUX физический Mac mini M4, зарезервированный только для вас, и проверьте проект на реальном оборудовании Apple. Запускайте Xcode и симулятор, чтобы проверить экран запуска и поведение приложения перед публикацией. Подключайтесь по SSH для сборок CI и по VNC, когда для проверки нужен графический интерфейс macOS. Выберите срок аренды — от суток до квартала — и используйте Mac для проверки Archive и подготовки релиза без покупки оборудования.