GitLab被用于存储公司的项目,我们可以把公司项目所用到的组件也放到GitLab上,使用Cocoa Pods来直接快速集成。
但是初学者首次使用GitLab做这个集成,头绪很乱,会遇到很多坑,经我摸索,来了,梳理出了流程,按这个流程,即可快速学会。
1、在GitLab上创建一个私有库
这里建的私有库名称是ZFGitLabTest,Visibility Level默认是Private。
此时的GitLab上这个私有库是个空库,什么都没有。
2、在本地的项目文件夹中创建本地私有库
cd到本地的项目文件夹
输入 pod lib create ZFGitLabTest 敲回车,直到出现问你问题,请根据需要回答:
What platform do you want to use?? [ iOS / macOS ]
ios
What language do you want to use?? [ Swift / ObjC ]
objc
Would you like to include a demo application with your library? [ Yes / No ]
yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]
none
Would you like to do view based testing? [ Yes / No ]
no
What is your class prefix?
ZF
回答完最后一个问题,敲回车,本地项目文件夹中会出现一个ZFGitLabTest文件夹,而且Xcode会自动打开这个ZFGitLabTest库,关闭即可。此时,说明ZFGitLabTest私有库已经创建完毕。
3、修改本地私有库的podspec文件
使用pod lib create 创建的本地私有库默认是基于GitHub的,因此生成的podspec文件中的s.homepage和s.source中的git也都是基于GitHub的,我们需要将这两个地方修改成基于GitLab的地址。
s.homepage即是这个私有库在GitLab上的主页地址(地址栏中的地址);
s.source中的git即是这个私有库在GitLab上的git地址
其他的可以不动。
4、将本地私有库推送到GitLab上的私有库
cd到本地的这个私有库,依次执行以下命令:
git init
git remote add origin https://yyyy/xxxx/zzz.git
(说明:https://yyyy/xxxx/zzz.git 是 你的这个私有库在GitLab上的git地址)
git add .
git commit -m "your commit message"
git push -u origin master
无意外的话,应该就可以把你的本地私有库中的文件全部推送到了GitLab上的私有库了。
这里之所以是无意外,有可能会遇到推送不上去的问题,出现Updates were rejected because the remote contains work that you do....或者You are not allowed to force push code to a protected branch on this project.....或者其他杂七杂八的问题,我百度了很多解决方案,都不行。最后这样解决的:
5、本地项目集成本地私有库
由于本地私有库还处于开发过程中,因此我们以development pods的方式集成到本地项目中。
在podfile文件中增加:
pod 'ZFGitLabTest', :path => "./ZFGitLabTest/ZFGitLabTest.podspec"
这种方式就是集成本地的ZFGitLabTest这个库。
如果你写成 :
pod 'ZFGitLabTest', :git => "https://xxxx/yyyy/zzz.git"
这种方式就是集成GitLab上的ZFGitLabTest,不过这种一般是在ZFGitLabTest开发完成后使用,直接去GitLab集成已经开发完毕的ZFGitLabTest。私有库的开发过程中还是最好使用第一种写法。
cd到本地的项目文件夹,执行pod install,ZFGitLabTest被集成到项目中了
6、测试
我们在本地的私有库中增加几个文件(xxx.h和xxx.m),同时删除那个默认创建出来的没用的ReplaceMe.m文件,然后推到GitLab上,看本地私有库的改动能否关联到GitLab上。
文件操作完毕后,执行pod install,就会看到新增文件的正确目录结构了,开始推送到GitLab上。
cd到这个私有库,执行:
git add .
git commit -m "your commit message"
git push
到GitLab看一眼,这个私有库已经更新了:
我们以后就可以本地更新了这个私有库,推送到了GitLab上了。