🔨 Xcode переходит на JSON-формат проектов.
В Xcode 27.2 компания Apple добавила новый формат конфигурации проекта. Внутри привычного .xcodeproj теперь может лежать project.xcproj вместо project.pbxproj. И это не просто смена расширения.
Формат .pbxproj годами был одним из самых неприятных файлов в iOS-проекте. Огромный плоский список объектов. Ссылки через непонятные ID, merge-конфликты после добавления одного файла. Ручное редактирование почти всегда с мыслями «только бы проект в Xcode открылся».
Что представляет собой новый формат:
Новый .xcproj - это иерархический, самодокументируемый JSON. Структура файла становится ближе к тому, что мы видим в Xcode. Apple выделяет три причины перехода:
🔹Первая: diff теперь проще читать. Изменения в comparison view соответствуют действиям в Xcode.
🔹Вторая: merge-конфликтов должно стать меньше. JSON изолирует изменения конфигурации.
🔹Третья: агенты смогут безопаснее менять настройки проекта. Раньше агенты упирались в задачу «добавь target, framework и build setting в .pbxproj», и на этом месте начиналась лотерея. Теперь Apple явно делает конфигурацию проекта более удобной не только для людей, но и для Xcode Intelligence и других агентов.
Как перейти на новый формат:
В Xcode 27.2 новые проекты по умолчанию уже используют JSON. Старые можно перевести вручную.
Нужно выбрать проект в навигаторе, открыть инспектор файла и в разделе документ проекта выбрать JSON из меню формат проекта. После этого внутри .xcodeproj файл project.pbxproj удаляется и появляется project.xcproj.
Сам .xcodeproj никуда не исчезает. Schemes, Package.resolved, user data и остальная структура остаются как были. Это не новый способ описывать проект вроде Tuist или XcodeGen. Это тот же Xcode project model, просто в более удобном формате.
Совместимость:
Новый формат поддерживается всеми версиями Xcode 27 и новее. Для перехода не обязательно одновременно обновлять всю команду до 27.2.
Если что-то пошло не так, миграция обратима через git: вернуть project.pbxproj и удалить .xcproj.
🔗 Читать подробнее
💡 Вывод:
Apple наконец-то избавилась от legacy-формата, который годами раздражал разработчиков. .pbxproj был неудобен для чтения, плохо переносил слияния и почти не поддавался ручному редактированию. Новый .xcproj решает эти проблемы.
Для людей это означает более понятные сравнения изменений и меньше конфликтов. Для агентов - возможность безопасно менять настройки проекта. Для инструментов - типизированный доступ к структуре через библиотеку.
Миграция не обязательна, но если вы уже на Xcode 27, стоит попробовать. Особенно если работаете в команде, где merge-конфликты стали постоянной болью.
Подписаться на канал:
➡️ Telegram | Max
Post #477
872

- 🔥 15
- 👍 6
- ❤ 2
- 🤯 2
- 🙏 1