美文网首页
iOS CocoaPods私有库

iOS CocoaPods私有库

作者: 一钱科技 | 来源:发表于2019-08-27 14:43 被阅读0次

  在网上众多技术文章基本千篇一律。多是简单copy,每次打开不同标题,结果内容大同小异,让人很无奈。
  无效搜索和情感磨灭,有时候真让人发狂。

  本文简单介绍私有化的创建步骤及相关原理。知其然知其所以然。
  pod主要涉及到两个概念:版本库和代码库

版本库创建
  • 在git创建远程版本库项目
  • 将远程版本库添加到本地
$ pod repo add 本地仓库名称 git仓库地址

  完成后,可在~/.cocoapods/repos目录查看

代码库pod

  在网上多为命令行(如下所示)创建工程,生成包含Example项目。其实完全没有必要,主要原因是工程结构复杂,不易理解和整理。

$ pod lib create 工程名

  如果要使工程作为pod库存在,只需要git根目录添加podspec和LICENSE两个文件即可。
根本原因是pod加载库是根据podspec索引文件定位查找。所以podspec文件的位置和形式不是必需品。

  • 在git代码仓库根目录命令行创建或者拷贝其他项目podspec、LICENSE
$ pod spec create MyAdditions

模版:

Pod::Spec.new do |s|
  s.name         = "项目名称" 
  s.version      = "版本号 与 你仓库的 标签号 对应" 
  s.license      = "MIT"          # 开源证书
  s.summary      = "私人pod代码" # 项目简介

  s.homepage     = "仓库的主页"
  s.source       = { :git => "你的仓库地址,不能用SSH地址", :tag => "#{s.version}" }
  s.source_files = "代码的位置/*.{h,m}" #表示文件夹下所有的.h和.m文件
  s.requires_arc = true # 是否启用ARC
  s.platform     = :ios, "7.0" #平台及支持的最低版本
 # 实例
  s.subspec 'Library' do |ss|
    ss.source_files = 'AppFrame/Library/*.h'
    ss.public_header_files = 'AppFrame/Library/*.h'
    ss.subspec 'Network' do |sss|
      sss.subspec 'Http' do |ssss|
        ssss.dependency 'AFNetworking', '~> 3.2.1'
        ssss.source_files = 'AppFrame/Library/Network/Http/*.{h,m}'
        ssss.public_header_files = 'AppFrame/Library/Network/Http/*.h'
      end
    end
    ss.subspec 'Storage' do |sss|
      sss.subspec 'Keychain' do |ssss|
        ssss.source_files = 'AppFrame/Library/Storage/Keychain/*.{h,m}'
        ssss.public_header_files = 'AppFrame/Library/Storage/Keychain/*.h'
      end
    end
  end
end
  • 验证podspec文件正确性,因为用到AFNetworking,所以要加入官方地址
$ pod lib lint --verbose --allow-warnings --sources='https://github.com/CocoaPods/Specs'
  • 提交文件,打tag(必须和podspec版本号一致)
更新版本库版本
  • 将podspec提交到远程版本库
$ pod repo push podRepo AppFrame.podspec --allow-warnings  --sources='https://github.com/CocoaPods/Specs'

  
  到此,私有库创建完毕,使用最新版本:

$ pod update

相关文章

网友评论

      本文标题:iOS CocoaPods私有库

      本文链接:https://www.haomeiwen.com/subject/snceectx.html