CocoaPods 可以说是 iOS 开发应用最广泛的包管理工具,本篇文章主要介绍 CocoaPods 的第三方库是怎样从网络集成到我们本地的项目当中,也是制作私有库、开源库和 iOS 项目组件化的一个知识铺垫。

让我们从一张图片开始:

CocoaPods 工作流程
未命名文件

远程索引库

远程索引库里存放的是各种框架的描述信息,这个库托管在 Github 上,地址如下:

github.com/CocoaPods/S…

每个框架下有数个版本,每个版本有一个 json 格式的描述信息,如下:

{"name": "CAIStatusBar","version": "0.0.1","summary": "A simple indicator","homepage": "https://github.com/apple5566/CAIStatusBar.git","license": "MIT","authors": {"apple5566": "zaijiank110@sohu.com"},"platforms": {"ios": "6.0"},"source": {"git": "https://github.com/apple5566/CAIStatusBar.git","tag": "0.0.1"},"source_files": "CAIStatusBar/**/*.{h,m}","resources": "CAIStatusBar/CAIStatusBar.bundle","requires_arc": true
}

其中 git 字段表示该框架的托管地址,也就是上面时序图中的 远程框架库

本地索引库

在 install cocoapods 命令后,需要执行 pod setup 这个命令,pod setup 命令就是将远程索引库克隆到本地来,本地索引库的路径如下:

~/.cocoapods/repos/master

本地索引库和远程索引库的目录一致,结构如下:

本地索引库
本地索引库

本地索引文件

当执行 pod search 命令时,如果本地索引文件不存在,会创建这个文件。

tianziyaodeMacBook-Air:~ Tian$ pod search afn
Creating search index for spec repo 'master'..

如果这个文件存在,则会在此文件中进行索引,确认所需要的框架是否存在,本地索引文件的路径如下:

~/资源库/Caches/CocoaPods

制作 CocoaPods 库

上面的流程清楚以后,制作 CocoaPods 库相信应该不会太难了,大致分为以下几步:

  1. 托管框架源码到 Git;
  2. 创建框架描述信息;
  3. 上传框架描述信息到 https://github.com/CocoaPods/Specs
  4. 命令行 pod setup , 创建本地索引库;
  5. 命令行 pod install ,将框架集成到项目中;

现在开始动手吧!首先在桌面新建一个 testLib 目录,在该目录下新建一个 Classes 目录,用来存放框架源码,然后将 testLib 托管到 Git。

你可以给 Classes 目录任意的命名,Classes 只是一种约定俗称的命名。

pod spec

pod spec 命令用于创建框架的描述信息文件,文档如下:

guides.cocoapods.org/syntax/pods…

现在在 testLib 目录下执行:

pod spec create testLib

目录下会创建一个 testLib.podspec 文件,然后编辑这个文件,主要有以下几个字段:

  • version:这个 spec 映射的版本,保证 Git 的 releases 与此对应;
  • homepage:项目主页;
  • source:框架源代码的托管地址;
  • tag:与 version 对应;
  • source_files:框架源代码的目录、文件、文件类型等规则;

CocoaPods 公开库

根据上面的步骤,现在你需要将生成的 testLib.podspec 文件上传到远程索引库,在此之前,你需要注册一个 Trunk 账号,文档如下:

guides.cocoapods.org/making/gett…

现在执行下面的命令,记得修改邮箱昵称描述等:

pod trunk register ziyao.tian@gmail.com 'Tian' --description='macbook air'

你的邮箱会收到一封邮件,打开邮件里面的链接,会有类似 you can back termainal 的提示,现在回到终端。

pod lib lint

检查 testLib.podspec 的合法性,根据错误提示修复问题,当显示 passed validation 后,执行下面的命令:

pod trunk push testLib.podspec

提示信息如下:

Updating spec repo `master`--------------------------------------------------------------------------------��  Congrats

你真的会用 CocoaPods 吗?相关推荐

  1. CocoaPods详解之----使用篇

    作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关 ...

  2. 一、IOS CocoaPods详细使用方法

    自从有了CocoaPods以后,这些繁杂的工作就不再需要我们亲力亲为了,只需要我们做好少量的配置工作,CocoaPods会为我们做好一切 一.什么是cocoapods 1.为什么需要cocoapods ...

  3. CocoaPods是什么?

    CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而 ...

  4. cocospod 安装和使用

    http://blog.csdn.net/eqera/article/details/39312125 一 ruby 安装 要安装coocspod 首先需要安装ruby,可以先安装xcode,在安装m ...

  5. 2017下半年掘金日报优质文章合集:iOS篇

    提前祝大家元旦快乐(不知道过节还有没有热爱学习的朋友呀?!) 在掘金微信群里的小伙伴应该都有看每日小报吧!这是小饼每天为大家精选的优质掘金文章(大家都很爱学习,我已经跟不上了QAQ..)小饼已经被N位 ...

  6. Masonry和Cocopods

    Masonry 和 cocopods 介绍及安装步骤 Masonry 是什么.有什么用? 出处:Masonry是github开源项目: https://github.com/Masonry/Mason ...

  7. ios pods 详解

    CocoaPods详解之----使用篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437 转载请注明出处 ...

  8. swift使用cocoapods导入oc三方库

    这里主要说几个关于cocoapods导入三方库需要注意的问题和我遇到的坑 1.Swift语言使用cocoapods配置Podfile文件时要加上use_framework!这句代码,作用是把三方库打包 ...

  9. 使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)

    第三方登录是现在app很常用的功能,而这个功能我已经写过两三次了...每次都写大同小异的代码真的是很痛苦,而且每次都要根据说明去添加那些依赖库,配置linkFlag什么的,完全是体力活,所以一直想把这 ...

最新文章

  1. java mvc view_对Springmvc view层的理解
  2. CUDA8.0+VS2015+Win10开发环境搭建教程
  3. springsecurity的工作原理
  4. 深入浅出让你理解什么是LLVM
  5. spark匹配html字段,Apache Spark中的高效字符串匹配
  6. 同时设置超时时间_刚入职的小菜鸡,设错了RPC超时,搞了个线上事故
  7. 基于mondrian的多维分析系统
  8. 【Python面试】谈谈对 Python 和其他语言的区别?​
  9. 计算机组装与维修案例分析,设备故障维修案例分析三则
  10. ZJU期末考试记录(研究生)——数据挖掘
  11. c语言中词法分析怎么识别注释,C语言中的词法分析-如何在检测多行注释时使星号被读取并输出?...
  12. mysql 硬盘缓存_paip.mysql性能跟iops的以及硬盘缓存的关系_MySQL
  13. tomcat日志中出现乱码
  14. 窗函数在图像处理中的应用
  15. C#数组和集合专题2(Array)
  16. 计算机软件编程英语词汇集锦
  17. oracle分析函数大全非常详细
  18. 经过几天的努力,出了 2 本保姆级编程电子书!
  19. php 字符串长度的解释
  20. linux打开pkg文件怎么打开,linux中怎么打开tar.rar.gz文件

热门文章

  1. Ubuntu 16.04 安装Django
  2. 使用.NET REACTOR制作软件许可证
  3. maven 插件:Tomcat7
  4. Android Handler介绍
  5. 图形化的Redis监控系统redis-stat安装
  6. squid日志文件太大,怎样处理?
  7. 网页效率之DNS查找和并行下载
  8. Windows 2000/XP 注册表终极修改(转载)
  9. 服务器架设笔记——搭建用户注册和验证功能
  10. Ruby Metaprogramming