最近把SDK开发完成后,要用在日常测试中,就需要和开发的代码打包在一起持续集成。开发的代码本来就在持续集成的平台上,为了不污染开发的代码,所以让开发帮忙拉了一个分支,痛苦之旅从此刻开始。
1、编译脚本
因为我的SDK是通过pod引入,所以需要修改编译脚本,如果编译的是 .xcodeproj 工程,则使用如下命令
#工程名字
PROJECT="build/jsb-default/frameworks/runtime-src/proj.ios_mac/abcmouse.xcodeproj"
#clean工程
$XCODE_PATH clean -project $PROJECT -scheme $TARGET -configuration $DBCONFIGURATION
#编译工程
$XCODE_PATH -project $PROJECT -scheme $TARGET -configuration $DBCONFIGURATION CONFIGURATION_BUILD_DIR=$BUILD_DIR
如果使用的是cocopods,编译的是 .xcworkspace 工程,则使用如下命令
#工程名字
PROJECT="build/jsb-default/frameworks/runtime-src/proj.ios_mac/abcmouse.xcworkspace"
#clean工程
$XCODE_PATH clean -workspace $PROJECT -scheme $TARGET -configuration $DBCONFIGURATION
#编译工程
$XCODE_PATH -workspace $PROJECT -scheme $TARGET -configuration $DBCONFIGURATION CONFIGURATION_BUILD_DIR=$BUILD_DIR
2、自动生成的临时文件
因为需要不断的在 master分支 和 自动化分支 上来回切换,在没有任何修改的情况下,总是会出现如下错误
再看 自动化分支,果然生成了 xcschememanagement.plist 临时文件
所以要忽略这些临时文件,在 .gitignore 中添加如下内容
build/jsb-default/frameworks/runtime-src/proj.ios_mac/ios/frameworks/QZUpload/UploadLib.xcodeproj/xcuserdata/*.xcuserdatad/
因为**.gitignore**文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用,所以需要把 xcschememanagement.plist文件删掉并提交,更新远程仓库。
3、merge master分支 代码到 自动化分支
自动化分支的代码要一直和 master分支 代码保持同步,否则就失去了自动化分支的意义,总不能用旧的app测试吧。每天定时运行如下命令:
#切换master分支
git checkout master
#拉去master分支代码
git pull
#切换abcmouse_auto_test分支
git checkout abcmouse_auto_test
#merge master分支到abcmouse_auto_test分支
git merge master -m "合并master分支到abcmouse_auto_test分支"
#推送到远程分支
git push
4、参考文章
1、http://www.ruanyifeng.com/blog/2014/06/git_remote.html