Skip to content

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 等)。

参数

参数名类型必填说明
projectPathstring.xcodeproj 的目录
modificationsarray有序修改指令列表
depsSafelyModifyProjectPbxprojDeps文件依赖

返回值

类型说明
{ success, error?, logs[] }是否全部修改成功

工作原理

  1. 定位 project.pbxproj 并解析为可编辑结构(字符串/AST 策略见源码)。
  2. 依次应用 modifications,冲突时 abort 并返回 error。
  3. 写回前做基本合法性校验,避免破坏 UUID 引用。

异常

结构无法解析时返回 success: false,不抛未捕获异常。