使用CocoaPods和svn共同管理依赖库

我们在开发过程中经常会需要依赖第三方库或我们自己的私有库(本地库),关于依赖第三方库和Cocoapods的使用这里就不做赘述了,大家可以看唐巧的《用CocoaPods做iOS程序的依赖管理》这篇文章,我这里只记录我使用CocoaPods和svn共同管理私有库的过程,svn管理工具我使用的是Cornerstone。

接下来我将描述如何使用CocoaPods和svn共同管理依赖库

操作说明

  1. 创建一个框架命名为QHLUtil,再添加一些自己需要的类到QHLUtil中,编译顺利完成后,使用Cornerstone将QHLUtil项目导入已创建的文件目录下,结果如图:


    2017-03-18-1.png
  2. 打开终端,执行
    cd ~/Documents/ProjectManagerTest/QHLUtil
    ~/Documents/ProjectManagerTest/QHLUtil这是我创建项目的路径,根据你创建项目的路径进行修改

  3. 创建项目的podspec文件,执行
    pod spec create QHLUtil
    创建成功后终端显示Specification created at QHLUtil.podspec

  4. 编辑QHLUtil.podspec,执行
    vim QHLUtil.podspec
    编辑相关信息,我信息内容如下:
    Pod::Spec.new do |s|
    s.name = "QHLUtil"
    s.version = "0.0.1"
    s.summary = "工具类"
    s.description = <<-DESC
    "工具类"
    DESC

     s.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上

  1. 创建测试项目ProjectManagerDemo,执行
    cd /Users/karl.luo/Documents/ProjectManagerTest/ProjectManagerDemo
    到你创建的项目文件目录下,这里的命令根据你的项目路径做改变

  2. 创建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为你私有库文件目录

  1. 建立依赖关系,这里有两种情况

a. 直接执行命令
pod install
完成依赖关联
b. 根据版本进行管理
进入QHLUtil文件目录,创建名为tags的文件,如图:

2017-03-18-2.png

将tags文件夹同步到svn,打开Cornerstone,右击QHLUtil项目,创建改项目的一个版本tag,如图:
2017-03-18-3.png

填写tag的信息
2017-03-18-4.png

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中项目的目录结构将如图所示:
2017-03-18-5.png

编辑QHLUtil.podspec文件(步骤同上),将s.version值设置为刚才创建的Tag As号,当有多个tag时,设置为你要选择的版本号,保存退出编辑
执行
pod spec lint QHLUtil.podspec --allow-warnings
检查信息是否有错,如果成功,来到ProjectManagerDemo目录,执行
pod install

  1. 更新新库,需要更新依赖库时,编辑QHLUtil.podspec文件中s.version设置为要依赖的库,执行
    pod update

你可能感兴趣的:(使用CocoaPods和svn共同管理依赖库)