在团队开发中,经常会抽出内部框架以便团队复用,使用Cocoapods制作一个私有的框架,其它同事导入就可以使用了,可以大大提升开发效率。
一、创建两个git仓库
一个用来做私有的Spec Repo在此命名为KAYREPO,一个作为公共仓库在此命名为KAYGIT
二、添加私有Repo到Cocoapods
主要命令是pod repo add REPO_NAME SOURCE_URL。其中,REPO_NAME是私有repo的名字也就是KAYREPO,取一个容易记住的名字,后面还会用到,以后公司内部的组件对应的podspec都可以推送到这个repo中;SOURCE_URL就是刚刚我们创建的公共仓库链接。
三、制作podspec
在开发中完成了一个框架测试通过发布release版本后,便可以制作podspec。制作方法很多,可以通过XCode中Cocoapods插件的create/edit spec选项来生成,也可以使用命令行:
1 | pod spec create PODSPECNAME |
四、编写podspec
这一步我踩了很多坑,测试一直通不过,最终试验成功如下:
1 | Pod::Spec.new do |s| |
五、测试
推送到服务器前必须要测试通过,cd到与spec文件同级目录,命令行敲上以下命令:
1 | pod lib lint |
执行此过程会调用xcode命令行自动编译,只有编译通过才能进入下一步
显示具体错误使用:
1 | --verbose |
若提示警告可以忽视:
1 | --allow-warnings |
无错误则为测试通过
六、推送到服务器
推送命令如下:
1 | pod repo push REPO_NAME SPEC_NAME.podspec |
REPO_NAME就是建立的私有repo,也就是KAYREPO
忽视警告同样使用
1 | --allow-warnings |
无错误则为推送成功
测试下能否搜索到lib
1 | pod search NAME |
$ pod search KAYUTIL
-> KAYUTIL (0.1.2)
KAYUTIL is a request util based on AFNetworking
pod ‘BGNetwork’, ‘~> 0.1.2’
Homepage: https://github.com/luliangxiao/KAYUTIL
Source: https://github.com/luliangxiao/KAYUTIL.git
Versions: 0.1.1, 0.1.0 [luliangxiao repo] - 0.1.2, 0.1.1 [master repo]1
2
3
4
5
6
7
8
同时将sepc文件PUSH到远程KAYGIT仓库中,以后版本更新就PUSH新的sepc文件到KAYGIT
若要在项目中导入上传的私有库,需要在Podfile文件中添加本地私有源。如果没有添加本地私有源,它默认是用官方的repo,这样找不到本地的Pod;如果只是设置了本地私有源,就不会再去官方源中查找。在podfile中配置如下
#官方Cocoapods的源
source ‘https://github.com/CocoaPods/Specs.git‘
#本地私有源
source ‘http://git.kay.com/luliangxiao/cocospod_spec_repo.git‘
platform :ios, ‘7.0’
pod ‘KAYUTIL’, ‘~> 2.0’
```
执行pod install. KO