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

Xcode 27.2: project.xcproj вместо pbxproj — что изменилось

oodot · 2026-09-25

22 сентября Apple тихо закрыла один из самых старых источников боли в iOS-разработке: в Xcode 27.2 beta появился новый формат файла проекта — JSON-based project.xcproj, который постепенно заменит легаси-project.pbxproj. Формат читаемый, предсказуемый при мёрдже в git и, по признанию самой Apple, удобнее для AI-агентов, которые правят код.

Стилизованная схема перехода от файловой структуры проекта к JSON-объекту на тёмном фоне — Xcode 27.2

Чем плох был pbxproj

project.pbxproj — это NeXT-style ASCII property list с непрозрачными ID-ссылками между объектами, который Xcode использовал с 2000-х годов. Формально текстовый и «человекочитаемый», на практике он таким не был: любое минимальное изменение — переименование файла, добавление таргета — задевало сразу несколько несвязанных строк с ID-хешами. Разработчики годами относились к нему как к бинарному файлу: не читали и не правили руками, а конфликты при мёрдже нескольких веток были почти гарантированы.

Что принёс xcproj

Новый project.xcproj устроен принципиально иначе:

  • Дерево вместо плоского списка объектов. Структура сборки повторяет иерархию, которую вы видите в интерфейсе Xcode, а не плоский граф с ID.
  • Имена и пути вместо непрозрачных ID. Перекрёстные ссылки между файлами и таргетами задаются человекочитаемо — сразу понятно, что на что ссылается.
  • Файлы сами объявляют свои таргеты. Раньше таргет перечислял «свои» файлы; теперь связь идёт в обратную сторону, что радикально уменьшает число строк, задетых при точечном изменении.

Новые проекты в Xcode 27.2 по умолчанию создаются в формате xcproj; существующие проекты не мигрируются автоматически — переключение делается вручную через file inspector, и оба формата какое-то время будут сосуществовать. Apple также опубликовала на GitHub Swift-библиотеку и CLI-инструмент для чтения и программного редактирования xcproj — то есть формат официально предназначен и для тулинга, не только для самого Xcode.

Совместимость и когда переключаться

Проекты в новом формате открываются и в Xcode 27.0 — изменился только формат хранения на диске, а не сама модель сборки. Xcode 26 такие проекты уже не поддерживает. Для командного проекта разумная стратегия — не спешить: подождать, пока сторонние инструменты (менеджеры зависимостей, генераторы проектов вроде XcodeProj/Tuist) добавят полноценную поддержку xcproj, и переключаться, когда вся команда обновится до Xcode 27.2+.

Для небольших и новых проектов — особенно тех, где правки в файл проекта делает не только человек, но и coding-агент внутри IDE — переход имеет смысл сделать сразу: меньше шанс сломать структуру проекта нечитаемым диффом. Если вы поддерживаете iOS-приложение и годами избегаете ручных правок pbxproj из страха всё сломать, это тот редкий случай, когда стоит обновить тулчейн ради самого формата, а не ради новых API. Именно на таких деталях инфраструктуры и держится долгоживущий продукт — в oodot мы стараемся закладывать поддерживаемую архитектуру сразу, а не разгребать технический долг постфактум, и то же самое советуем командам, которым нужна разработка мобильного приложения с расчётом на годы жизни, а не на один релиз.

Источники: Daring Fireball — Xcode 27.2 Now Supports a New JSON Project File Format (22 сентября 2026), Sarunw — The new JSON project format in Xcode 27.2.