作者:wangzz
转载请注明出处
 
学会使用别人的pods依赖库后,你一定对创建自己的依赖库跃跃欲试,今天就来揭开pods依赖库创建过程的神秘面纱。整个创建过程都以实现一个名为WZMarqueeView为例,步骤如下:
 
一、创建自己的github仓库
 
cocoapods都托管在github上(官方链接为:https://github.com/CocoaPods),所有的pods依赖库也都依赖github,因此第一步我们需要创建一个属于自己的github仓库。仓库创建如下:

上图中标了序号的共有6处,对应的说明如下:

1.Respository name

仓库名称,这里写成FZMarqueeView,必填的;

2.Description

仓库的描述信息,可选的;

3.仓库的公开性

这里只能选public,一个是因为Private是要钱的,另一个private别人看不到无法共享。

4.是否创建一个默认的README文件

一个完整的仓库,都需要README文件,建议选上。当然不嫌麻烦也可以在后面手动创建一个。

5.是否添加.gitignore文件

.gitignore文件里面记载了若干种文件类型,凡是该文件包含的文件类型,git都不会将其纳入到版本管理中。是否选择看个人需要;

6.license类型

正规的仓库都应该有一个license文件,pods依赖库对这个文件的要求更严,是必须要有的。因此最好在这里让github创建一个,也可以自己后续手动创建,这里使用的license类型是MIT。

上面的各项都填写完毕后,点击Creat respository按钮即可,创建成功界面如图:

到这,仓库的创建就结束了。

二、clone仓库到本地

为了方便向仓库增删内容,需要先将仓库clone到本地,操作方式有多种,推荐使用命令行:

  1. $ git clone https://github.com/11010/FZMarqueeView.git

操作完成后,github上对应的文件都会拷贝到本地,目录结构如上。

github上仓库中的.gitignore文件是以.开头的隐藏文件,因此这里只能看到两个。后续我们所有文件增删改都在这个目录下进行。

三、向本地git仓库中添加创建pods依赖库所需文件

注意:以下描述的文件都要放在步骤二clone到本地的git仓库的根目录下面。

1、后缀为.podspec文件

该文件为pods依赖库的描述文件,每个pods依赖库必须有且仅有那么一个描述文件。文件名称要和我们想创建的依赖库名称保持一致,我的FZMarqueeView依赖库对应的文件名为FZMarqueeView.podspec。

1.1podspec文件内容

WZMarqueeView.podspec的保存内容为:

  1. Pod::Spec.new do |s|
  2. s.name             = "WZMarqueeView"
  3. s.version          = "1.0.0"
  4. s.summary          = "A marquee view used on iOS."
  5. s.description      = <<-DESC
  6. It is a marquee view used on iOS, which implement by Objective-C.
  7. DESC
  8. s.homepage         = "https://github.com/wangzz/WZMarqueeView"
  9. # s.screenshots      = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
  10. s.license          = 'MIT'
  11. s.author           = { "王中周" => "wzzvictory_tjsd@163.com" }
  12. s.source           = { :git => "https://github.com/wangzz/WZMarqueeView.git", :tag => s.version.to_s }
  13. # s.social_media_url = 'https://twitter.com/NAME'
  14. s.platform     = :ios, '4.3'
  15. # s.ios.deployment_target = '5.0'
  16. # s.osx.deployment_target = '10.7'
  17. s.requires_arc = true
  18. s.source_files = 'WZMarqueeView/*'
  19. # s.resources = 'Assets'
  20. # s.ios.exclude_files = 'Classes/osx'
  21. # s.osx.exclude_files = 'Classes/ios'
  22. # s.public_header_files = 'Classes/**/*.h'
  23. s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit'
  24. end

该文件是ruby文件,里面的条目都很容易知道含义

其中需要说明的有几个参数”

(1)s.license

pods依赖库使用的license类型,大家都天上自己对应的选择即可。

(2)s.source_files

表示源文件的路径,注意这个路径是相对podspec文件而言的。

(3)s.frameworks

需要用到的frameworks,不需要加.frameworks后缀。

1.2如何创建podspec文件

大家创建自己的podspec文件可以有两个途径:

(1)copy上面的podspec文件然后修改对应的参数,推荐使用这种方式。

(2)执行以下命令

  1. $ pod spec create WZMarqueeView

也会创建名为FZMarqueeView.podspec的文件。但是打开创建玩的文件你就会发现里面东西太多了,很多都是我们不需要的。

2、LICENSE文件

CocoaPods强制要求所有的Pods依赖库都必须有license文件,否则验证不会通过。license的类型有很多种,详情可以参考网站tl;dr Legal。在创建github仓库的时候,我们一斤该选择了MIT类型的license。

3、主类文件

创建Pods依赖库就是为了方便别人使用我们的陈国,比如我想共享给大家FZ类,是我想提供给广大用户使用的,这个类自然不可少,我把这个类包含的两个文件放到一个名为FZ的文件夹总,对应的目录结构如图:

里面包含两个文件:WZMarqueeView.h和WZMarqueeView.m

4、demo工程

为了快速教会别人使用我们的pods依赖库,通常要提供一个demo工程。我创建的demo工程放到了一个名为WZdemo的文件夹中,该目录包含文件如下:

5、README.md

使用github的人应该都熟悉这个文件,他是成功gith仓库必不可少的一部分,使用的是markdown标记语言,用于对仓库的详细说明。

以上所有的5个是创建pods依赖库所需要的最基础文件,其中123是必须的,45是可选但强烈推荐的。添加完这些文件以后,我的github本地仓库目录就编程了下面所示的样子:

未完

[HMLY]4.CocoaPods详解----制作的更多相关文章

  1. [HMLY]2.CocoaPods详解----进阶

    作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709 转载请注明出处   一.podfile.lock文件   ...

  2. [HMLY]1.CocoaPods详解----使用

    作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437 转载请注明出处   一.什么是cocoaPods 1.为 ...

  3. CocoaPods详解之(三)----制作篇

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

  4. CocoaPods 详解之----更新篇

    CocoaPods 大概是 2011 年出现的开源组件管理工具(目前已支持 Objective-C 和 Swift),近年来普及率越来越高,几乎已是所有 Cocoa 开源项目的标配.另外,很多大点的团 ...

  5. CocoaPods详解之(二)----进阶篇

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

  6. CocoaPods详解之(一)----使用篇

    CocoaPods详解之----使用篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437 一.什么是Coc ...

  7. CocoaPods详解之----制作篇【转】

    Cocoapods是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库,以及将自己的项目中的公共组件交由它去管理.Cocoapods的介绍及优点本文就不在赘述,我开始 ...

  8. 详解-制作根文件系统,并使用yaffs,jffs,nfs挂载系统(2)

    1.安装mkyaffsimage, mkyaffs2image命令(用来制作yaffs文件系统) 第一个命令针对Flash小页512B,第二个针对Flash大页2KB首先下载压缩文件 yaffs_so ...

  9. CocoaPods详解之----进阶篇

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

随机推荐

  1. asp.net mvc部署

    GAC 目录: 在运行窗口中输入:C:\WINDOWS\assembly\GAC NET 2.0,3.0 GAC: c:\windows\assembly (32bit and 64bit?) .NE ...

  2. ios学习之category设计模式

    之前看书的时候,没怎么注意,但在项目中,才发现它的特别之处. 先来看看他用途:官网大意是这样写的:当你想简单的向一个已知类添加一个方法的时候,你就可以使用它.使用它的时候,命名是有要求的,如下: @i ...

  3. jQuery中delegate与on的用法与区别

    在jQuery1.7中 .delegate()已被.on()取代.对于早期版本,它仍然使用事件委托的最有效手段. 在事件绑定和委派,delegate()和on在一般情况下,这两种方法是等效的. .de ...

  4. Spring3.2 + Hibernate4.2

    Spring3.2 + Hibernate4.2 前三篇随笔中介绍了 用原生的JDBC访问数据库.一种高效的数据库连接池druid.用Spring的JDBC框架访问数据库. 本文继续介绍第三种数据库访 ...

  5. 受众定向-Topic Model

    注:这一节我忽略,如果今后有时候,我会整理一份Topic Model的资料来说明,因为原课程中面向的是可能本来就熟悉Topic Model的听众,讲这课只是举个例子,带大家复习一下,所以即使整理出来, ...

  6. 在OpenStack虚拟机实例中创建swap分区的一种方法

    测试组里一个同学负责MapR的搭建,MapR文档中建议每个节点上至少有24GB的swap分区,不知道MapR为啥会有这种反人类的建议……swap无非就是一块顺序读写的磁盘空间,莫非省着内存不用,用sw ...

  7. (Python学习9)Python虚拟机中的一般表达式

    1.准备工作 执行.py程序时,Python解释器对PyCodeObject的co_code存储的字节码进行解释执行,同时co_consts存储了常量,co_names存储了变量名称.用compile ...

  8. 类classthe Meta-Object Compiler (moc)

    本文是一篇关于类class的帖子 the Meta-Object Compiler (moc) 元对象编译器是处理Qt的C++扩展的程序. moc工具读取C++头文件,如果它找到一个或者多个类声明包含 ...

  9. Java synchronized 详解

    Java synchronized 详解 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 1.当两个并发线程访问同一个对象object ...

  10. 在android里用ExpandableListView实现二层和三层列表

    转载自http://www.cnblogs.com/nuliniaoboke/archive/2012/11/13/2767957.html 二层列表是直接用androidAPI中的Expandabl ...