苹果于Xcode 27.2版本推出基于JSON的全新项目配置文件格式,核心目标是取代传统属性列表格式,以增强可读性、简化维护流程,并降低AI编码智能体对项目配置的解析难度,提升开发体验。该格式通过JSON开源文件xcode-project-format,在代码仓库提交后可更精准校验配置变更,其更稳定、可预测的配置表示有效减少了合并冲突。同时,新格式适配AI自动化开发工具,简化配置检查与修改。苹果同步发布Swift编码包辅助使用,底层仅替换存储形式,目标为推动开发者降低合并冲突困扰。相关观点显示,该改动能显著提升开发效率,后续迁移工具需提前适配新格式,以保障项目稳定运行。

--91likeyou---

为帮助开发者使用这种新格式,苹果还发布了一个用于编码和解码该格式的 Swift 包。例如,以下是如何列出项目中定义的所有 target:

import XcodeProjectFormatfunc listTargets(in projectURL: URL) throws { let projectData = try Data(contentsOf: projectURL) let project = try XCSchema.Project(jsonRepresentation: projectData) for target in project.targets { print(target.name) }}复制代码

在顶层,JSON Schema 不仅定义了 target,还定义了文件树、构建配置、构建设置和外部依赖。它还支持不同子树中节点之间的关联关系。例如,一个文件可以指定它所属的构建阶段和 target。重要的是,该格式尽可能避免使用不透明的标识符,优先使用可读的名称和路径。Target 和构建产物例外,它们使用标识符来支持外部文件引用。

资深 iOS 开发者 Nikita Dyachkov 在评论此消息时指出:

合并项目文件的问题自项目文件诞生以来就一直存在,任何在多人 iOS 开发团队中工作过的人都对此深有体会。

在同一条讨论帖中,资深 iOS 工程师 Khushal Jhalani 评价这种可读性更强的新格式“大幅提升了开发体验”。不少人也认同这项改动姗姗来迟,资深 iOS 开发者 Moumita China 表示,如果早点推出,本可以免去“多年的合并冲突困扰”。

现有项目可轻松迁移,因为新格式仅改变项目在磁盘上的存储形式,底层模型不变。项目转换后,传统的 project.pbxproj 文件会替换为 project.xcproj。不过,在迁移之前请确认你正在使用的工具(包括 fastlane、CocoaPods、Tuist 等)均支持新格式。

查看英文原文:

🔥 热词:#Xcode · #JSON · #27 · #AI · #推出对智能体友好、有效减少合并冲突的 · #项目配置格式 · #苹果推出基于 · #的全新