iOS CocoaPods私有库

2019-08-27  本文已影响0人  一钱科技

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

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

版本库创建
$ pod repo add 本地仓库名称 git仓库地址

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

代码库pod

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

$ pod lib create 工程名

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

$ 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
$ pod lib lint --verbose --allow-warnings --sources='https://github.com/CocoaPods/Specs'
更新版本库版本
$ pod repo push podRepo AppFrame.podspec --allow-warnings  --sources='https://github.com/CocoaPods/Specs'

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

$ pod update
上一篇 下一篇

猜你喜欢

热点阅读