使用xUnique遇到了的问题

xUnique是一个用来对iOS向的.xcodeproj文件进行排序的工具,它可以降低.xcodeproj文件冲突的概率。其实质是一个Git Hook脚本,在提交一个Commit时,如果*.xcodeproj文件有修改,则会对文件进行重新排序。

最近在使用时发现了一个问题,当我执行“pod install”安装第三方库时,在进行提交时会报”File ‘project.pbxproj’ is broken. Cannot find PBXProject name.”,从字面意思看’project.pbxproj’文件损坏,但是进入*.xcodeproj文件夹,双击‘project.pbxproj’,发现是可以打开的,并没有问题。

最后通过查找资料,找到了原因,具体原因是由于在执行‘pod install’后,CocoaPods会重写‘project.pbxproj’文件,并且改变了它的格式,导致xUnique无法正确读取’project.pbxproj’文件。

解决方法是:让xcode重新生成‘project.pbxproj’,具体步骤如下:

  1. 先关闭xUnique,然后提交代码。关闭xUnique的方法是打开“<项目仓库根目录>/.git/hooks/pre-commit”文件,注释掉xUnique有关的内容
  2. 做出任意一个可以导致’project.pbxproj’修改的修改,例如修改版本号,创建文件等,这样xcode会重写’project.pbxproj’文件
  3. 打开xUnique,提交代码,这时xUnique就可以识别’project.pbxproj’文件了

参看文档:
File ‘project.pbxproj’ is broken. Cannot find PBXProject name.