我们在开发过程中经常会需要依赖第三方库或我们自己的私有库(本地库),关于依赖第三方库和Cocoapods的使用这里就不做赘述了,大家可以看唐巧的《用CocoaPods做iOS程序的依赖管理》这篇文章,我这里只记录我使用CocoaPods和svn共同管理私有库的过程,svn管理工具我使用的是Cornerstone。
接下来我将描述如何使用CocoaPods和svn共同管理依赖库
操作说明
-
创建一个框架命名为QHLUtil,再添加一些自己需要的类到QHLUtil中,编译顺利完成后,使用Cornerstone将QHLUtil项目导入已创建的文件目录下,结果如图:
打开终端,执行
cd ~/Documents/ProjectManagerTest/QHLUtil
~/Documents/ProjectManagerTest/QHLUtil这是我创建项目的路径,根据你创建项目的路径进行修改创建项目的podspec文件,执行
pod spec create QHLUtil
创建成功后终端显示Specification created at QHLUtil.podspec-
编辑QHLUtil.podspec,执行
vim QHLUtil.podspec
编辑相关信息,我信息内容如下:
Pod::Spec.new do |s|
s.name = "QHLUtil"
s.version = "0.0.1"
s.summary = "工具类"
s.description = <<-DESC
"工具类"
DESCs.homepage = "https://lkxiluo.github.io/" s.license = "MIT" s.author = { "Qianhan" => "https://lkxiluo.github.io/" } s.platform = :ios, "8.0" s.ios.deployment_target = "8.0" s.source = { :svn => "svn://192.168.6.5:9600/wzhouhui/app/ios/ProjectManagerTest/QHLUtil", :tag => "#{s.version}" } s.source_files = "QHLUtil", "QHLUtil/**/*.{h,m}" s.exclude_files = "QHLUtil/Exclude" s.frameworks = "UIKit", "Foundation"
关于.podspec文件内容各个字段的代表的意思这里就不描述了,大家可以看这篇文章
保存退出,将QHLUtil.podspec文件同步到svn上
创建测试项目ProjectManagerDemo,执行
cd /Users/karl.luo/Documents/ProjectManagerTest/ProjectManagerDemo
到你创建的项目文件目录下,这里的命令根据你的项目路径做改变-
创建Podfile文件,执行
vim Podfile
编辑Podfile文件内容如下
platform:ios, '8.0'target:ProjectManagerDemo do pod 'QHLUtil', :svn=>'svn://192.168.6.5:9600/wzhouhui/app/ios/ProjectManagerTest/QHLUtil' end
svn://192.168.6.5:9600/wzhouhui/app/ios/ProjectManagerTest/QHLUtil为你私有库文件目录
- 建立依赖关系,这里有两种情况
a. 直接执行命令
pod install
完成依赖关联
b. 根据版本进行管理
进入QHLUtil文件目录,创建名为tags的文件,如图:
将tags文件夹同步到svn,打开Cornerstone,右击QHLUtil项目,创建改项目的一个版本tag,如图:
填写tag的信息
Tag信息说明:
Tag As为版本号,将与QHLUtil.podspec文件中的s.version= "0.0.1"相同
Where为保存路径,保存在刚才创建的tags文件夹下,此目录要正确,因为关联时获取资源就是根据s.source= { :svn => "svn://192.168.6.5:9600/wzhouhui/app/ios/ProjectManagerTest/QHLUtil", :tag => "#{s.version}" }索引的,如果错了见找不到资源
Revision为svn上代码的提交版本
点击“Create Tag”创建完成,此时,Cornerstone中项目的目录结构将如图所示:
编辑QHLUtil.podspec文件(步骤同上),将s.version值设置为刚才创建的Tag As号,当有多个tag时,设置为你要选择的版本号,保存退出编辑
执行
pod spec lint QHLUtil.podspec --allow-warnings
检查信息是否有错,如果成功,来到ProjectManagerDemo目录,执行
pod install
- 更新新库,需要更新依赖库时,编辑QHLUtil.podspec文件中s.version设置为要依赖的库,执行
pod update