CocoaPods除了可以做第三方开源库的管理。其实还可以做私有库的管理。
比如:
第一:我们公司自己的库,可以共享给公司很多团队使用,如果直接copy会很麻烦,所以我们可以把他托管到自己的git服务器上,然后做成私有的库pod 进相应的工程项目里面使用。
第二:如果现有的第三方库满足不了我们现在的需求,我们可以做适当的修改,当时开这个项目的开发者不一定合并我们的代码,所以呢,我们也可以做成私有的库托管到公司自己的服务器上维护。
下面大致介绍下我自己修改的JSONModel 做成私有库维护在自己的git 服务器上,然后pod进现有的工程使用的一个步骤吧。
第一步:假如自己的代码托管在git服务器上,我们先到当前工程目录下创建一个Podspec索引文件,然后放到一些编辑工具编辑
pod spec create JSONModel
Pod::Spec.new do |s|
s.name = "JSONModel"
s.version = "1.0.2"
s.summary = "JSONModel 做了私有的修改"
s.homepage = "http://10.1.64.25/Servens/JSONModel.git"
s.license = 'MIT'
s.author = { "sevens" => "qiqi@qiqi.com" }
s.source = { :git => "http://10.1.64.25/Servens/JSONModel.git", :tag => "1.0.2" }
s.ios.deployment_target = '6.0'
s.osx.deployment_target = '10.7'
s.watchos.deployment_target = '2.0'
s.tvos.deployment_target = '9.0'
s.source_files = 'JSONModel/*.{m,h}'
s.public_header_files = 'JSONModel/*.h'
s.requires_arc = true
end
参数名字解释:
s.name声明库的名称
s.summary对这个库的简短说明介绍
s.version当前库的版本
s.homepage声明库的主页
s.license所采用的授权版本
s.author库的作者
s.platform库运行的平台和系统的最低版本
s.source库的仓库地址以及版本号或者committed等
s.source_files声明库的源代码的位置,库的真正路径(一般是相对路径)所以这个地方不能填错。这个目录下的文件都会进行编译。
s.resources存放我们不想参与编译的资源文件
s.frameworks声明了库所依赖的系统核心库
s.dependency我们开发的库中也可能还依赖第三方库,例如JSONKit,那么,就可以做如下声明:s.dependency "JSONKit", "~> 1.4",如果有多个就写多个
验证文件有效性
pod spec lint JSONModel.podspec --verbose --allow-warnings
注意:
加上这个verbose参数可以把一些详细信息打印出来方便查看错误信息。如果有错误按照提示修改。警告虽然也可以忽略,但是也要当作错误处理。
注意配置文件里面的版本号要和自己代码的标签版本对应
s.source_files 文件路径是相对于podspec的路径
第二步:创建一个工程在git上保存我们的podspec文件
给cocoapods添加私有repo
pod repo add JSONModelPod https://192.168.2.2/JSONModel.git
pod repo list
用上述命令可以查看自己的刚才创建的本地仓库,除了master 和 private 我们单独创建一个文件夹因为我们是第三方库做修改的private里面已经存在有可能,所以这样不会冲突。
把配置文件添加到本地并推送到服务器上
pod repo push ~/JSONModel/JSONModel.podspec --allow-warnings
可以去JSONModel文件夹里面查看有一个当前版本,如果以后有新的版本,会有多个文件夹里面有相应的配置文件。
第三步:怎么把自己的私有库引入到当前工程里面使用。
# Uncomment this line to define a global platform for your project
source'http://10.1.2.5/Servens/JSONModelConfigurationFile.git'
source'https://github.com/CocoaPods/Specs.git'
platform :ios,'8.0'
inhibit_all_warnings!
target'CocoapodsTest'do
pod'AFNetworking'
pod'JSONModel','1.0.2'
end
注意添加source'仓库地址' 自己的在前面,官方的在后面,可以添加多个自己的仓库路径
第四:私有库的维护怎么个步骤呢
1:自己库更新打一个新的tag 和 配置文件里面的版本号对应起来
2 :pod spec lint JSONModel.podspec --verbose --allow-warnings 验证有效性
3:pod repo push JSONModel ~/JSONModel/JSONModel.podspec --allow-warnings 推送到服务器