在合并iOS项目时,最让人头疼的就是项目文件冲突了。偏偏Xcode项目文件冲突的几率又特别高,只要项目文件被多个小伙伴同时修改,几乎100%就会遇到冲突。而项目文件的格式也是复杂难懂,因此一旦遇到冲突,解决起来让广大开发者们都是分外头疼。
在神奇Google的指引下,我找到了解决项目文件冲突的工具---xUnique
。
xUnique原理
导致Xcode项目文件冲突的根本原因是节点的排列没有固定次序,以及在不同的电脑上生成的节点的UUID并不相同。
xUnique
是一个Python脚本,它能够将项目文件中的PBXFileReference和PBXBuildFile区块排序,并且将UUID为永久不变的MD5 digest值。只要把xUnique
与pre-commit钩子绑定,每次提交项目文件时对其进行序列化,就能有效减少项目文件的冲突。
安装xUnique
[step 1]将xUnique
的代码clone到本地
git clone git@github.com:truebit/xUnique.git
[step 2]安装xUnique
进入xUnique
源码所在文件夹,执行
sudo python setup.py install
[step 3]将xUnique
与git钩子绑定
进入需要绑定xUnique
的项目所在路径,在终端中执行
{ echo '#!/bin/sh'; echo 'python -mxUnique path/MyProject.xcodeproj'; } > .git/hooks/pre-commit
其中path
为项目的路径,MyProject.xcodeproj
需要用项目的实际工程文件名来替代
[step 4]将pre-commit文件设置可执行权限
chmod 555 .git/hooks/pre-commit
完成以上四步后,xUnique
就算是安装成功了,它将会在每次commit时执行,自动对项目工程文件进行处理。
更多xUnique
介绍,请移步xUnique的github主页。
本文转自:http://codingtime.me/post/posts/leng-zhi-shi/2015_01_16_xunique