Cocoapods 入门

介绍

最近一直在搞cocoapods。 ios 这么多年终于有一个好使的包管理了。真的好激动好激动。。。 之前开发一些App的时候,在一开始的时候,总是需要手动添加framework, library,设置一些 search path,有时候还会忘记那么几个,然后出来一大堆的link error。当一些library更新的时候,还需要自己手动去更换。3句话说就是

  1. 手动增加framework,library
  2. 手动增加编译参数
  3. 手动维护代码更新

完全是一大堆的体力活,当然,这些简单的配置和复制并不会花费太多的时间,但是,还是觉得在浪费生命,而这时候CocoaPods就出来了。我们只需要设置一个Podfile文件,执行

$ pod install

CocoaPods会帮我们下载好代码,设置好编译参数,配置好framework, library。

安装和更新

$ sudo gem install cocoapods

使用

在project根目录下,create Podfile文件,下面一个例子

platform :ios, ‘5.0‘
pod ‘CURestKit‘, ‘~>1.0.1‘
pod ‘SDWebImage‘,‘~>3.4‘
pod ‘MBProgressHUD‘, ‘~> 0.7‘
pod ‘UALogger‘, ‘~> 0.2.3‘

CocoaPods 会帮我们从git clone下来配置好的这些代码。后面的部分表示代码的版本号,一般来说和tag挂钩。

配置好Podfile之后,执行

$ pod install

则会帮我们配置好这些项目。并生成一个XXXX.xcworkspace。 以后project使用这个文件就可以了。CocoaPods其实就是帮我们配置一个静态库作为项目的依赖。

CocoaPods里面有大量的代码,现在最新的版本安装后是在这里

~/.cocoapods/repo/master/

制作自己的项目配置

实际开发过程中,我们还有不少代码需要被改动,而CocoaPods上面的代码,大部分都比较旧,都是很稳定的代码,当然也有一些不能用的(大部分是国内的公司做的,大家都懂的)。另外还有一些我们自己写的一些其他代码,暂时还么有被CocoaPods收录的。这时候我们就需要配置自己的项目啦。

这里是我的一个项目配置例子。cocoapods的配置文件就是一个 *.podspec的文件,这是一个例子文件名ShareCenter.podspec。这是一个典型的ruby,

Pod::Spec.new do |s|
s.name         = "ShareCenter"
s.version      = "2.0"
s.summary      = "share client include sina weibo ,tencent weibo, renren"

s.description  = <<-DESC
               share client include sina weibo ,tencent weibo, renren
               DESC

s.homepage     = "https://github.com/studentdeng/ShareCenterExample"
s.license      = ‘MIT‘
s.author       = { "curer" => "[email protected]" }
s.platform     = :ios, ‘5.0‘

s.source       = { :git => "https://github.com/studentdeng/ShareCenterExample.git", :tag => s.version.to_s }
s.source_files  = ‘ShareCenter‘, ‘ShareCenter/**/*.{h,m}‘

s.frameworks   = ‘QuartzCore‘, ‘Security‘, ‘CoreGraphics‘, ‘AudioToolbox‘
s.library = ‘sqlite3.0‘
s.vendored_libraries = ‘ShareCenter/Vender/sina/libWeiboSDK/libWeiboSDK.a‘

s.prefix_header_contents = <<-EOS
#ifdef __OBJC__
#import "ROConnect.h"
#endif /* __OBJC__*/
EOS
end

这个基本上都是自解释的,这里有几个需要说明一下

s.source s.source_files

这里的 source 我们看出是一个git 的地址,这里我们调试的时候,可以先暂时设置成本地git,调试完毕之后就可以发布 增加tag。想要最新的代码只需要这样设置就好

{ :git => "https://github.com/studentdeng/ShareCenterExample.git"}

我们的git项目中,并不是所有的代码都需要被引用到我们的代码中,通常project还会包括一些example,test cases等,这里的 source_files 就是用来指定一些文件夹,或是文件。我这里的设置也很容易理解,就是ShareCenter下面的递归后的所有后缀是h、m的子文件。

s.frameworks s.library

这里配置的就是我们的framework 和 library,这里注意一下library的名字规则就好。

vendored_libraries

这里用来指定外部的静态库。这里我们指定了sina sso认证的SDK

s.prefix_header_contents

这里用来指定预编译的配置,这里一定要鄙视一下renren的超级渣渣SDK。这里提供一种解决方法。

部署我们的配置到cocoapods中

cocoapods的代码配置文件是在这里Specs

这里最好是去fork一个自己的project,然后保存一个自己或是团队的配置,这样不会在更新cocoapods的时候,丢掉自己的配置。当然,如果觉得自己搞的还不错,也可以去pull requests。

在之前提到的目录~/.cocoapods/repo/master/ 下面,我们可以看到已经有超级多的项目了,我们可以也可以通过

$ pod search XXX

来查找项目,或是直接在这个文件夹下面找,可以学习不少project的配置技巧,我这里也是从他们学到的。

最后添加一个project的配置是这样子的。

例如上面的例子, 在~/.cocoapods/repo/master/ 下面创建一个文件夹ShareCenter,然后在创建一个2.0的文件夹表示这是version2.0的配置。 然后在把之前的ShareCenter.podspec复制到2.0目录下面。

也就是最后的目录是这样子的

~/.cocoapods/repo/master/ShareCenter/2.0/ShareCenter.podspec

如果希望更多的了解cocoapods,还是需要去Github上面 :D

时间: 2024-10-17 18:22:34

Cocoapods 入门的相关文章

CocoaPods入门到精通

详细说明:http://blog.csdn.net/lizhongfu2013/article/details/26384029 使用篇:http://www.superqq.com/blog/2014/11/15/cocoapodsxiang-jie-zhi-shi-yong-pian/ 进阶篇:http://www.superqq.com/blog/2014/11/17/cocoapodsxiang-jie-zhi-jin-jie-pian/ 制作篇:http://www.superqq.c

CocoaPods安装与使用

CocoaPods 简介 它是iOS最常用的第三方库依赖管理工具,且绝大多数优秀的开源框架都支持CocoaPods. CocoaPods项目的源码 在 Github 上管理.该项目开始于 2011 年 8 月 12 日,开发 iOS 项目不可避免地要使用第三方开源库,CocoaPods 的出现使得我们可以节省设置和更新第三方开源库的时间. CocoaPods 的安装 安装 安装方式异常简单 , Mac 下都自带 ruby,使用 ruby 的 gem 命令即可下载安装: $ sudo gem in

iOS--安装Cocoapods遇到的问题和解决方法

进入正题前,先来点前奏:了解cocoapods是某天看一个博客,那时才明白原来写项目不用一个个将三方库拷进项目里啊,惊讶的我是一塌糊涂的啊...(原谅我那时还没进入过正规的IT公司....好多你们自然而然接触的东西,都需要我一点一点自己去接触...)所以啊,赶紧的扒资料啊,博客啊,各种关于cocoapods的文献啊,尝试着去安装一下,就一下...靠,失败了????再试试,还不行???接着扒资料,合并总结..再去安装,,成了?激动啊,就想着纪念一下...那就写个博客吧,把其中遇到的艰辛都列出来,也

用CocoaPods做iOS程序的依赖管理(转载)

原文链接:http://blog.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/ 用CocoaPods做iOS程序的依赖管理 MAY 25TH, 2014 文档更新说明 2012-12-02 v1.0 初稿 2014-01-08 v1.1 增加设置 ruby 淘宝源相关内容 2014-05-25 v2.0 增加国内 spec 镜像.使用私有 pod.podfile.lock.创建 spec 文件等内容

CocoaPods——用CocoaPods做iOS程序的依赖管理

文档更新说明 2012-12-02 v1.0 初稿 2014-01-08 v1.1 增加设置ruby淘宝源相关内容 2014-05-25 v2.0 增加国内spec镜像.使用私有pod.podfile.lock.创建spec文件等内容 CocoaPods简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm.随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的名字叫做:CocoaPods. CocoaPods项目的源码在G

iOS项目中使用CocoaPods问题解决方案

文/yehot(简书作者)原文链接:http://www.jianshu.com/p/a2007d8e2607著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 为什么iOS项目中应该使用CocoaPods作为第三方依赖管理工具?因为: (全文完) 开个玩笑.真正的原因是这样: 目录: 从一个bug说起 分析需求及解决方案 确定方案 CocoaPods学习资料 一.从一个bug说起: 1.公司的项目里统一使用SVG格式的图片:2.GitHub上只有一个star数超过一千的SVG解析库

CocoaPods :为iOS程序提供依赖管理的工具

http://www.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/ http://blog.csdn.net/showhilllee/article/details/38398119 http://blog.csdn.net/xdrt81y/article/details/30631221 http://www.it165.net/os/html/201408/9155.html http://www

iOS 用CocoaPods做iOS程序的依赖管理

文档更新说明 2012-12-02 v1.0 初稿 2014-01-08 v1.1 增加设置 ruby 淘宝源相关内容 2014-05-25 v2.0 增加国内 spec 镜像.使用私有 pod.podfile.lock.创建 spec 文件等内容 2015-09-03 v2.1 优化排版,调整一些描述方式,使文章更易读懂. CocoaPods 简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm.随着 iOS 开发者的增多,业界

用CocoaPods做iOS第三方库管理

文档更新说明 2012-12-02 v1.0 初稿 2014-01-08 v1.1 增加设置ruby淘宝源相关内容 2014-05-25 v2.0 增加国内spec镜像.使用私有pod.podfile.lock.创建spec文件等内容 CocoaPods简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm.随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的名字叫做:CocoaPods. CocoaPods项目的源码在G