Мы собрали 20 лет заметок о световой живописи в один гид. Он бесплатный. Читать гид ×
× ПриложенияТехнологииГалерея БлогО студииНаписать нам ›
Главная/Блог/iOS 27.2: три тихих изменения API для разработчиков
Новости

iOS 27.2: три тихих изменения API для разработчиков

26 октября Apple выпустила iOS 27.2 — в заголовках новостей оказался Apple Pencil на iPhone Duo, но для команд разработки важнее три менее заметных изменения в SDK: расширенный промпт App Tracking Transparency, который теперь обязателен в пяти странах ЕС, нулевые отступы по умолчанию у UIView и несколько фиксов в StoreKit Testing. Все три молча меняют поведение приложения даже без единой строчки нового кода — достаточно пересобрать проект под SDK 27.2.

Абстрактная иллюстрация смартфона с сеткой светящихся геометрических иконок на экране — к новости об API-изменениях iOS 27.2

ATT-промпт: в пяти странах ЕС теперь полноэкранный

Расширенная версия системного запроса на отслеживание — часть договорённостей Apple с европейскими регуляторами конкуренции. Во Франции, Германии, Италии, Польше и Румынии приложение обязано показать полноэкранный промпт с форматированным текстом и опциональной кнопкой «Подробнее»; в остальных странах ЕС он доступен по желанию, за пределами ЕС не действует вовсе. Сами правила о том, когда приложению нужно спрашивать разрешение на отслеживание, не изменились. Новый метод requestTrackingAuthorization(preferExpandedInterface:additionalInformationAction:completionHandler:) доступен начиная с iOS, iPadOS и Mac Catalyst 27.2; в пяти обязательных странах прежний requestTrackingAuthorization(completionHandler:) теперь сам показывает полноэкранный лист, а новый метод лишь добавляет кнопку с дополнительной информацией. Впервые появилась возможность повторно спросить пользователя через год после отказа.

UIView: отступы по умолчанию стали нулевыми

На iOS 27.1 и новее значение layoutMargins у UIView по умолчанию равно нулю — раньше система подставляла системные отступы автоматически. Изменение SDK-зависимое: эффект проявляется только у приложений, пересобранных под SDK 27.1/27.2, так что апдейт платформы на устройстве пользователя сам по себе ничего не ломает. View controller по-прежнему передаёт своему view systemMinimumLayoutMargins, которые меняются в зависимости от контекста показа экрана; чтобы subview унаследовал эти отступы, нужно явно выставить ему preservesSuperviewLayoutMargins = true. Любой layout, который полагался на отступы UIView «по умолчанию», после пересборки под новый SDK визуально поедет — особенно формы и карточки, собранные без явных constraint-ов на margin.

StoreKit Testing: три фикса, которые стоит перепроверить

В iOS 27.2 закрыты три бага StoreKit Testing: некорректное определение права на intro-предложение, неверная передача storefront между запросами и баг в показе диалогов покупки. Если команда гоняла автотесты подписок или триалов на предыдущих версиях SDK и обходила эти баги костылями в тестовом окружении — после обновления стоит перепроверить сценарии заново, иначе временный обход может начать маскировать реальные проблемы вместо несуществующих.

Что проверить перед пересборкой под SDK 27.2

  • Прогнать regression-тесты UI-слоя на экранах с плотной вёрсткой (формы, карточки, списки) — именно там чаще всего «плывут» отступы после обнуления layoutMargins.
  • Если приложение показывает собственный ATT-промпт или таргетируется на Францию, Германию, Италию, Польшу или Румынию — обновить вызов на новый метод с preferExpandedInterface до публикации под SDK 27.2.
  • Снять временные обходы багов StoreKit Testing в тестовом окружении и прогнать сценарии intro-предложений и смены storefront заново.

Когда таких изменений в одном релизе накапливается сразу несколько, а своей команде не хватает рук перепроверить весь UI-слой и подписочную логику за разумный срок, быстрее отдать эту работу на аутсорс — команде, которая занимается разработкой мобильных приложений и регулярно ведёт такие миграции SDK под ключ.

Источники: Blake Crosley — iOS 27.2 Release Notes: What Shipped, and Where 27.1 Went, Apple Developer — iOS 27.2 (24B91020) Release Notes.