podspec文件
建立CocoaPods私有源的关键是编写.podspec
文件,此文件是CocoaPods所使用的一种特殊,例子可以参考以下源码。
Pod::Spec.new do |s|
s.name = 'AFNetworking'
s.version = '3.2.1'
s.license = 'MIT'
s.summary = 'A delightful iOS and OS X networking framework.'
s.homepage = 'https://github.com/AFNetworking/AFNetworking'
s.social_media_url = 'https://twitter.com/AFNetworking'
s.authors = { 'Mattt Thompson' => 'm@mattt.me' }
s.source = { :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => s.version, :submodules => true }
s.requires_arc = true
s.public_header_files = 'AFNetworking/AFNetworking.h'
s.source_files = 'AFNetworking/AFNetworking.h'
# 省略
创建Spec Repo
在GitHub或者公司内部的GitLab上创建一个Git Repo作为存放spec的Repo,然后在本地执行以下命令。
pod repo add [Spec Repo Name] [Spec Repo address]
如
pod repo add MySpecs http://git.xxx.com/MySpecs/specs.git
执行成功的话进入到~/.cocoapods/repos目录下就可以看到 MySpecs这个目录了,创建私有Spec Repo完成。
创建Pod项目工程文件
接下来就是创建各个第三方库的源码Repo,然后再与Spec Repo关联起来就行。
可以使用pod lib create [lib repo]
来创建一个示例的源码仓库。
执行完毕后,会创建一个包含podspec文件的的pod项目。创建完毕后,可以通过以下命令校验podspec项目是否正确
pod lib lint
也可以通过以下命令简单简单创建一个.podspec文件
pod spec create [podspec Name]
如
pod spec create mypodspec
建立一个远程仓库,把这个本地Pod项目工程推送到远程仓库,因为podspec文件中获取Git对应的分支是通过tag来获取的,所以我们要打上一个tag,
git tag -m "first release for v1.1.0" 1.1.0
git push --tags #推送tag到远端仓库,不能省略
推送Git之前要验证spec文件是否有效
pod lib lint --allow-warnings
向Spec Repo提交podspec
向Spec Repo提交podspec必须使用pod lib lint --allow-warnings
命令验证无误,然后执行以下命令
pod repo push [Spec Repo Name] [podspecName]
如
pod repo push MySpecs mypodspec.podspec
完成之后这个组件库就添加到我们的私有Spec Repo中了,可以进入到~/.cocoapods/repos/[Spec Repo Name]
目录下私有源Spec Repo远端仓库查看,都可以发现此次push的podspec。
使用私有源
在Podfile中添加私有源的搜索source
source 'http://git.XXX.com/MySpecs/specs.git
然后直接导入便可
pod 'XXX', '2.5.0'
当然也可以通过
pod search XXX
搜索到