使用CocoaPods创建私有Spec Repo管理项目公共组件(下)

使用CocoaPods创建私有Spec Repo管理项目公共组件(下)_第1张图片
CocoaPods

接上一篇

更新组件版本

  • 1、我们在之前创建好的版本中,添加一些代码,然后打上tag提交到git仓库,
# 添加代码到远程
git add .
git commit -m "0.2.0版本代码" 
git push origin master

# 设置版本tag
git tag -m  "0.2.0" 0.2.0
git push --tags
  • 2、修改podspec文件的版本号
# 只需要修改版本号就可以
s.version          = '0.2.0'
  • 3、现在我们就可以更新Podfile来获取我们的最新版本代码了。
pod 'HJPodTestLib', '~> 0.2.0'
pod update

创建subspec

一般我们的公共组件有很多类型的库,例如网络库,JSON库,工具库等,这样我们对库的管理就可以采取subspec的模式管理。

  • 1、首先我们需要源代码的存放文件夹,类似下面,按功能分好。
功能目录
  • 2、然后我们编辑podspec文件
Pod::Spec.new do |s|
  s.name             = 'HJPodTestLib'
  s.version          = '1.0.1'
  s.summary          = 'HJPodTestLib.'

  s.description      = <<-DESC
 description of the pod here.
                       DESC

  s.homepage         = 'https://github.com/OldGhost366/HJPodTestLib'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'OldGhost366' => '[email protected]' }
  s.source           = { :git => 'https://github.com/OldGhost366/HJPodTestLib.git', :tag => s.version.to_s }

  s.ios.deployment_target = '8.0'

  # subspec的定义
  s.subspec 'NetworkEngine' do |networkEngine|
    # 创建subspec的时候文件夹必须要有文件,不然就会报错 验证不通过
    networkEngine.source_files = 'HJPodTestLib/Classes/NetworkEngine/**/*'
    networkEngine.public_header_files = 'HJPodTestLib/Classes/NetworkEngine/**/*.h' 
  end
  s.subspec 'CommonUtils' do |utils|
    utils.source_files = 'HJPodTestLib/Classes/CommonUtils/**/*'
    utils.public_header_files = 'HJPodTestLib/Classes/CommonUtils/**/*.h'
  end
end

在验证podspec文件的时候我遇到一个问题,按照上面的意思是没有找到文件,原来是我只新建了两个文件夹,但是没有在里面创建文件,我在里面创建两个文件就可以了。但是我在上一篇文章制作的时候没有遇到这个问题,我猜测可能是subspec才会去检测。

jdeMacBook-Pro:HJPodTestLib j$ pod lib lint

 -> HJPodTestLib (1.0.1)
    - ERROR | [iOS] [HJPodTestLib/CommonUtils] file patterns: The `source_files` pattern did not match any file.
    - ERROR | [iOS] [HJPodTestLib/CommonUtils] file patterns: The `public_header_files` pattern did not match any file.
  • 3、使用subspec。
pod 'HJPodTestLib/NetworkEngine', '~> 1.0.1'

你可能感兴趣的:(使用CocoaPods创建私有Spec Repo管理项目公共组件(下))