前言:距离上一篇cocoapods公有库创建已经有了5个多月了,当初说好下一篇讲私有库创建也是拖到了现在,实在是懒癌又犯了。最近因为项目到了一定的阶段,需要部分重构就想到了,补上一篇未完成的文章,谁出去的牛还是要还的。。。
步骤:
一:创建一个私有的Spec repo
1.在github,gitlab,oschina上创建一个repo用来管理私有库的sepc文件(这里我选择了oschina平台,项目文件夹取名:FSSpces)

2.添加自己管理.podspec文件的仓库
pod repo add FSSpecs https:gitee.com/xxxx/FSSpces.git
(FSSpces是你创建的项目名, https:gitee.com/xxxx/FSSpces.git 是你的项目地址)
3.检查./cocoapods/repos 文件夹下是否有REPO_NAME文件夹

master是pod默认的一个仓库,用来管理公开的开源库。
FSSpecs就是我们自己刚刚创建的一个仓库克隆到本地了,这个仓库的作用就是管理我们需要的 .podspec文件了,后面我们会讲到。
二:制作CocoaPod依赖库
1.在oschina上创建自己的仓库(这里我命名为test)
与第一步种的第1小步一样, 需要注意打了标记的地方
2.克隆到本地
3.在本地仓库中添加创建pods依赖库需要的类文件,在本地仓库中创建.podspec文件(如果已经有了可以直接复制过来)

pod spec create test
这里需要注意的是,需要将所有的文件都放在Person文件夹下或者Person文件夹的子文件夹下。 这个文件夹包含了我们整个私有库需要的文件。
4.验证.podspec文件
pod lib lint
此时你会有非常多的警告和错误,根据提示修改.podspec文件直到没有错误。
相关参数有:
s.name = "PodTestLibrary" #名称 s.version = "0.1.0" #版本号 s.summary = "Just Testing." #简短介绍,下面是详细介绍 s.description = <<-DESC Testing Private Podspec. * Markdown format. * Don't worry about the indent, we strip it! DESC s.homepage = "https://gitee.com/MakeKeyReuse/FSBase" #主页,这里要填写可以访问到的地址,不然验证不通过
# s.screenshots = "", "" #截图 s.license = 'MIT' #开源协议 s.author = { "" => "" } #作者信息 s.source = { :git => "https://gitee.com/MakeKeyReuse/FSBase", :tag =>s.version } #项目地址,这里不支持ssh的地址,验证不通过,只支持HTTP和HTTPS,最好使用HTTPS
# s.social_media_url = 'https://twitter.com/<twitter_username>'
#多媒体介绍地址 s.platform = :ios, '7.0' #支持的平台及版本
s.requires_arc = true #是否使用ARC,如果指定具体文件,则具体的问题使用ARC
s.source_files = 'Pod/Classes/**/*' #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置
s.resource_bundles = { 'PodTestLibrary' => ['Pod/Assets/*.png'] } #资源文件地址
s.public_header_files = 'Pod/Classes/**/*.h' #公开头文件地址
s.frameworks = 'UIKit' #所需的framework,多个用逗号隔开
s.dependency 'AFNetworking', '~> 2.3' #依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependency
5.后提交到远程仓库
git add -A
git commit -m “添加pod所需文件”
git push origin master
检查远程仓库的内容
三:添加.podspec文件到自己的repo
1.pod repo push FSSpecs test.podspec
2.检查./cocoapods/repos 文件夹的变化
3.检查自己repo远程仓库的内容

此时会有错误信息:test没有tag,这里自己去打一下tag然后在提交,确定test项目是干净的在试。
四:测试
1.新建一个项目,初始化pod
2.在Podfile最上面添加下面两行
source 'https://github.com/CocoaPods/Specs.git' #官方仓库地址
source 'https://gitee.com/xxxxxx/FSSpecs.git' #私有仓库地址
这是因为使用pod默认是使用官方来源的,想要更改成自己的需要添加私有仓库的地址,但是只添加使用私有仓库的地址,就会让master管理的用不了,所以两个都要添加上。
3.导入pod ‘test’
4.pod init
五:遇到的相关坑
1.The repo `FSSpecs` at `../.cocoapods/repos/FXSpecs` is not clean:cd到repo的相关项目中
git status 检查一下是否有未提交的东西,如果有就commit后push一下,如果没有就git clean -f 后push一下。
2.当有依赖的时候经常会报错,配合试用一下命令
--allow-warnings :忽略警告
--use-libraries :验证lib
--verbose:查看详情
--no-clean:清理
完!!!