iPhone Dev - Project.pbxproj有多重要?

Rya*_*nJM 17 git iphone xcode

这个文件有什么作用,保持"正确"有多重要?

我见过人们编写脚本来合并任何处理它的变化,我听说其他人每次都手动合并它.

处理它的正确方法是什么?为什么?

bbu*_*bum 25

project.pbxproj包含Xcode用于构建项目的所有项目元数据; 设置,文件引用,配置,目标平台等......

即它是至关重要的.

对此真的没有很好的答案.通常,团队通过一次将对项目的编辑限制为一个团队成员来避免冲突.

Xcode团队为使文件合并友好付出了很多努力.在通过svn管理几个大型项目时,我发现合并是自动且无痛的.

直到他们不是.如果不是,则还原,手动合并更改(即在项目中进行相互冲突的更改),然后继续.


Xia*_*iao 6

试试我的脚本xUnique。它能做什么:

  1. 转换project.pbxproj为 JSON 格式
  2. 迭代objectsJSON 中的所有内容并为每个 UUID 提供绝对路径,并使用路径的 MD5 十六进制摘要创建新的 UUID
    • 这个json对象中的所有元素实际上连接成一棵树
    • 我们使用树的每个节点的唯一属性为其赋予路径属性;该路径是到根节点的绝对路径,
    • 将 MD5 十六进制摘要应用于节点的路径
  3. 将所有旧的 UUID 替换为 MD5 十六进制摘要,并删除当前节点树中未使用的 UUID 和格式错误的 UUID
  4. 对项目文件进行排序childrenfiles包括 、PBXFileReferencePBXBuildFile列表,并删除这些列表中的所有重复条目
    • sort_pbxproj如果你想了解实现,请参阅xUnique.py 中的方法;
    • 它是从我修改的移植而来的sort-Xcode-project-file,在顺序PBXFileReference和顺序上有一些差异PBXBuildFile
  5. 通过不同的选项,您可以更灵活地使用xUnique