目标:创建一个自己的私有组件仓库
具体步骤:
一、创建一个spec Repo的私有远程仓库 和 一个存放pod所需的项目工程文件的远程仓库;
二、创建spec Repo;
三、创建pod的所需的项目工程文件,并上传到远程私有仓库;
四、向私有的spec Repo远程仓库中提交podspec;
五、使用自己创建的私有pod库;
六、上传cocoapods
七、私有库的更新
一:创建一个spec Repo的私有远程仓库 和 一个存放pod所需的项目工程文件的远程仓库;
你需要创建两个仓库。建议使用码云,coding,或者gitlab具体的看你喜好。因为都是免费的。
我们使用码云gitee。
现在创建的仓库是存放所有的私有库的索引。例如最上方图中的myfbtposttest文件夹。此文本夹里面是tag和podspec文件索引。
点击下方创建成功。
初始化的如果你选了,那就已经在远程初始化了仓库。你必须clone提交。首次我不建议选。建议直接点击创建。
此时记录你的地址。假如你选择了初始化,那就是已经有了仓库。按步骤执行。
我们再次点击创建和刚才一样的步骤,只不过这次创建的是你的私有库(放的是代码文件)。
二、创建spec Repo;
1.查看本地仓库
pod repo
2、添加远程索引仓库
pod repo add 仓库名 仓库SSH(HTTPS)地址
例如仓库名为:myRepo。 地址为:创建myRepo后码云给的HTTPS中的git地址。例如:gitee.com/******/myRe…
3、验证是否添加成功
pod repo
大小写要区分的。显示的为我已经创建过的。
三、创建pod的所需的项目工程文件,并上传到远程私有仓库;
创建你的私有库(代码文件)
创建一个空文件夹
cd 空文件夹
pod lib create 私有仓库名(代码)
进入工程中
编辑podspec文件。这个步骤很关键。不能错。
此时验证本地仓库:pod lib lint --allow-warnings
建议加—allow-warnings 因为好像有警告会导致失败。如果你能都解决警告也可以放开。
必须成功,否则后面的执行没有用。
ffff.podspec passed validation.
将你封装好的代码放到classes文件夹下面。
去Example工程修改podfile文件。对应你文件的名称。
#pod 'ffff', :path => '../'
pod 'ffff',:podspec => '../ffff.podspec'
执行pod update --no-repo-update
然后执行git命令,上传此仓库。
cd ffff文件夹
git add .git
commit -m "first"
git remote add origin <远程仓库地址>
git push -u origin master
此git命令是没有初始化readme文件的情形,假如你初始化了,那你需要先去git clone远程仓库项目,再执行git上传的步骤。
此时进入到ffff文件夹,执行pod spec lint --allow-warnings此时是验证远程和本地仓库。
在远程仓库打上tag
git tag -a 0.1.0 -m "0.1.0"
git push --tags //推送到远程
四、向私有的spec Repo远程仓库中提交podspec;
myRepo为本地私有的索引库。
cd ffff文件夹。ffff.podspec为你刚才存放代码的索引。
pod repo push myRepo ffff.podspec
再次进入到myRepo里面。执行git上传命令。上传你的索引库。地址为你远程的myRepo仓库。
五、使用自己创建的私有pod库;
新建一个Xcode工程,pod init,pod install。修改Podfile文件。
先私有库,再公共库。
pod install
pod repo update <私有仓库>
六、上传cocoapods
pod trunk push <私有代码库>.podspec
提示你去注册。输入你的Email和姓名,然后去邮箱验证通过。
pod trunk register Email 'username' --verbose
pod trunk push <私有代码库>.podspec
七、私有库的更新
- 修改
xxx/xxx/Classes文件夹下对应的库文件 - 更新测试工程的
Pod库文件:pod update --no-repo-update - 更新
xxx.podspec文件的配置信息, 版本号一定要改 - 提交代码到远程仓库:
git push origin master - 更新
tag标签:
git tag -a 0.1.0 -m "0.1.0"
git push --tags - 更新远程和本地的私有索引库:
pod repo push MyRepo XXX.podspec --allow-warnings
备注:
参考多篇博客,文章仅仅为了给大家提供更加具体的步骤。
如有侵权,请及时沟通。