(三)敲重点!!远程私有库来了!
ⅰ.远程私有库演示(本篇)
ⅱ.远程私有库升级+优化
铺垫一:Category文件夹,含有UIView+Category.h 和 UIView+Category.m,也就是需要集成的代码。
铺垫二:在码云上创建两个项目,一个存放自己的私有索引库集TangyuanSpecs,对应地址1;一个管理某个部分的框架代码TangyuanBase,对应地址2。这里要注意的是,创建TangyuanBase时不要初始化READEME文件,下面创lib的时候会包含,不然提交的时候会报冲突。
大概的思路在cocoapods下,可以看到一开始只有master一个索引库
1我们把自己的私有库集添加进来,然后会发现repo下多了一个索引库
2pod repo add TangyuanSpecs 地址1
创建一个TangyuanBaseLib空文件夹,在里面创建TangyuanBase的lib
创建lib文件创建完后可以看到下图👇的文件目录,TangyuanBase里包含了spec文件、example测试工程及上面提到的READEME文件
TangyuanBase文件目录找到Classes下的ReplaceMe文件,删掉,并把Category文件拖进来,如下图👇
这里的Classes修改同时example工程里的podfile也会更新,别忘了pod insatll
打开example工程,可以看到Category已经被集成过来了。
example工程找到example工程里的podsepc文件进行修改
s.name = "名字" (ps:一般不用改)
s.version = “0.1.0" ( ps:版本号这个比较重要,打标签的时候要注意,这里默认是0.1.0)
s.summary = “TangyuanLib." (ps:描述可以随便写)
s.description = "detail description,must be longer than s.summary” (ps:详细描述,字数一定要超过summary)
s.homepage = “xxxxxx" (ps: TangyuanBase码云上的主页地址)
s.source = { :git => "https://xxxxxx.git", :tag => "#{s.version}" } ( ps: 码云上的地址,也就是地址2)
好了,修改完后,现在要把TangyuanBase整个文件夹都上传到码云上
pod lib lint (ps:先验证lib文件,通过后再git上传)
git add .
git commit -m 'x'
git remote add origin 地址2
git push -u origin master
打标签,一定要和spec里的version保持一致
git tag '0.1.0'
git push --tags
接下来,就要把spec文件上传到自己的私有库集
上传到私有库集pod spec lint --allow-warnings
pod repo push TangyuanSpec(私有库集名) TangyuanBase.podspec(要上传的spec)
然后我们可以看到cocoapods/repo/TangyuanSpecs下已经有0.1.0版本的TangyuanBase的spec文件
pod search,完美🤗
新建一个工程,pod init,编写podfile文件,默认的pod是从master索引库里找,我们这边是私有索引库,所以在上面要加上这个库的source地址
接着pod install,如果报了错误 [!] An unexpected version directory `Assets` was encountered for the `/Users/tangyuan/.cocoapods/repos/oschina-tangyuanliu-tangyuanbase/TangyuanBase` Pod in the `TangyuanBase` repository. 那就把地址直接跟在pod后面
接着就能在工程里看到Category里的代码已经集成过来了
这个时候如果你要集成其他的一些公有库,如AFNetworking等,在Podfile文件还得加一句master的source地址,不然在私有库里找AFNetworking是找不到的
远程私有库的创建使用过程大致上就这些,由于涉及到的名词比较多,文章里我直接用具体的文件名字代替,大家一一对应上即可。
文采不够,全靠图来凑🙈
网友评论