CocoaPods

作者: FunkyRay | 来源:发表于2017-12-24 16:33 被阅读15次

简介:

  • CocoaPods是OS XiOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。
  • 详细使用可以登录链接查看:https://cocoapods.org/
  • CocoaPods插件安装地址:https://github.com/kattrali/cocoapods-xcode-plugin
    优点:不必手动创建Podfile文件,不需要敲命令

集成第三方框架:

1.使用步骤:

  • 创建Podfile文件 :touch podfile/pod init
  • 打开Podfile文件进行描述,一般使用Xcode来打开
  • 搜索需要导入的框架描述 :pod search + 框架名称
  • 将搜索出来的结果拷贝到Podfile文件中并保存
  • 安装第三方框架 :pod install --no-repo-update

2.常用指令及说明:

  • help 或者 命令 -help :查找相关命令行
  • pod --help:搜索pod相关命令
  • podfile.lock文件 :第一次pod时候会自动生成该文件,用来描述当前导入框架版本号
  • pod repo :管理索引库,去寻找框架有无最新版本,有就记录下,pod installpod update都是根据这个命令去进行的
  • pod repo remove master:移除仓库源
  • pod repo add master xxx :添加仓库源
  • pod install --no-repo-update :在不更新索引库的前提下进行添加
  • pod install :第一次时候会根据Podfile文件去加载,之后都会根据podfile.lock去加载
  • pod update :去查看当前导入框架有无新版本,有新版本就会加载,并更新podfile.lock文件,会先去执行pod repo,更新比较耗时
  • pod setup :初始化(下载服务器中所有第三方框架信息, 缓存到电脑本地)
  • 索引缓存路径: ~/Library/Caches/CocoaPods/
  • pod命令安装路径:/usr/local/bin
  • pod框架索引信息缓存路径:/Users/ray/.cocoapods/repos/master

3.使用注意:

  • 第一次pod install时是根据Podfile这个文件去进行pod的,之后再次输入该命令都是根据podfile.lock这个文件进行pod的;
    pod update是根据Podfile这个文件去进行pod的,因为Podfile文件里没有指定版本号,所以每次输入这个命令都会查找最新的版本并进行更新下载,这样就可能会造成团队开发中pod的第三方框架版本不同,容易发生问题。
  • 使用pod search命令检索时,如果报错提示找不到该框架,这时可以删除CocoaPods检索文件并重新生成:rm ~/Library/Caches/CocoaPods/search_index.json

开发第三方框架:

1.使用步骤:

  • 如果是要上传到GitHub的远程公开库,通过pod建立本地公开索引库就可以;
    如果是要上传到个人或公司的远程私有库,需要先建立本地私有索引库 pod repo add 索引库名 远程索引库地址
  • 创建模板库 pod lib create 框架名称
  • 如果没有创建模板库,需要创建一个PodSpec文件:pod spec create 框架名称
  • 代码拖入Classes文件夹中,并在测试工程中进行pod install安装测试
  • 上传到远程代码仓库,并打好标签
  • 配置PodSpec文件
  • 校验PodSpec文件里的字段
    pod lib lint :验证本地环境
    pod spec lint :验证远程环境
  • 如果是要上传到远程公开索引库:
    注册trunk :pod trunk register 383265136@qq.com 'liuleiai1' --verbose
    进入邮箱确认链接并上传到远程索引库 :pod trunk push XXX.podspec
    等待审核
  • 如果是要上传到远程私有索引库:
    执行命令:pod repo push SpecName XXX.podspec

2.配置PodSpec文件说明:

  • s.name :框架名称 'LLKit'
  • s.version :版本号 0.0.1
  • s.summary :描述
  • s.description :详细描述,一定要比s.summary字数要长
  • s.homepage :框架链接地址 'https://coding.net/u/liuleiai1/p/LLKit'
  • s.license :协议 { :type => 'MIT', :file => 'LICENSE' }
  • s.author :作者 { 'liuleiai1' => '383265136@qq.com' }
  • s.source :框架映射地址 { :git => 'https://git.coding.net/liuleiai1/LLKit.git', :tag => s.version.to_s }
    里面的tag要和s.version保持一致
  • s.source_files :下载source地址指定tag文件夹下的所有文件 'LLKit/Classes/**/*'
  • s.dependency :当前框架所依赖的第三方库 s.dependency 'AFNetworking', '~> 2.3'

3.注意:

  • 集成本地私有库时,需要在Podfile文件里指定pod路径就可以:pod 'test', :path => '../test'
  • PodSpec文件在上传到远程私有索引库时,是直接上传到本地私有索引库,执行命令后会自动再上传到远程私有索引库
  • 在Podfile文件里既然引用个人私有的索引库,也要引用CocoaPods公开的索引库:
    source 'https://git.coding.net/liuleiai1/PrivateSpec.git'
    source 'https://github.com/CocoaPods/Specs.git' #官方仓库的地址
  • 更新自己开发的框架,由于上传PodSpec文件的时候已经更新过本地索引库,所以可以使用 pod update --no-repo-update 进行更新,速度更快
  • 如果框架里需要扩展子库,可以在PodSpec文件里这么写:
s.subspec 'Category' do |c|
    c.source_files = 'LLKit/Classes/Category/**/*'
end
  • 在Podfile文件里导入框架其中的某个子框架 pod 'LLKit/Category'
    导入多个子框架 pod 'LLKit', :subspec => ['Category', 'Tool']

相关文章

网友评论

      本文标题:CocoaPods

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