safelyModifyProjectPbxproj
在尽量保持 Xcode project.pbxproj 结构的前提下,增删文件引用、Build Phase、Capability 等。
前置依赖
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.readFileSync / writeFileSync | 读写 pbxproj | |
deps.existsSync | 校验工程存在 |
函数签名
typescript
function safelyModifyProjectPbxproj(
projectPath: string,
modifications: PbxprojModification[],
deps: SafelyModifyProjectPbxprojDeps,
): SafelyModifyProjectPbxprojResult具体 PbxprojModification 联合类型见源码(add file、add build phase 等)。
参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
projectPath | string | 是 | 含 .xcodeproj 的目录 |
modifications | array | 是 | 有序修改指令列表 |
deps | SafelyModifyProjectPbxprojDeps | 是 | 文件依赖 |
返回值
| 类型 | 说明 |
|---|---|
{ success, error?, logs[] } | 是否全部修改成功 |
工作原理
- 定位
project.pbxproj并解析为可编辑结构(字符串/AST 策略见源码)。 - 依次应用
modifications,冲突时 abort 并返回 error。 - 写回前做基本合法性校验,避免破坏 UUID 引用。
异常
结构无法解析时返回 success: false,不抛未捕获异常。