使用CocoaPods管理iOS项目中的依赖库

以下引用:http://blog.devzeng.com/blog/ios-cocoapods-dependency-manager.html

一种开发语言发展到一定的程度就会出现相应的依赖管理工具(Dependency Manager)或者是中央代码仓库,例如:

  • Java: Maven,Ivy
  • Ruby: gems
  • Python: pip, easy_install
  • Node.js: npm

随着iOS开发者的增加,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫做:CocoaPods。CocoaPods是一个负责管理iOS项目中第三方开源代码的工具,其源码在Github上托管。该项目开始于2011年8月12日,经过一年多的发展,现在已经超过1000次提交,并且持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得开发者可以节省设置和更新第三方开源库的时间。

CocoaPods Logo

安装CocoaPods

CocoaPods是使用

1、由于ruby的软件源因使用Amazon的云服务所以在国内无法访问,需要更新下ruby源,使用ruby.taobao.org(淘宝)替换rubygems.org(默认)源,具体的说明请戳:RubyGems 镜像 - 淘宝网

(1)移除https://rubygems.org/

gem sources --remove https://rubygems.org/

(2)添加https://ruby.taobao.org/

gem sources -a https://ruby.taobao.org/

(3)检查安装情况,确认只有https://ruby.taobao.org

gem sources -l

执行结果如下表示替换源成功:

*** CURRENT SOURCES ***

https://ruby.taobao.org

2、安装CocoaPods非常简单直接使用下面的两行命令即可

sudo gem install cocoapods

pod setup

补充说明:

(1)如果提示Ruby环境不够新,使用sudo gem update --system升级即可,升级完成重复上面的步骤。

(2)pod setup是将Spec项目复制到当前用户的.cocoapods/master目录下,其实就相当于将CocoaPods所管理的一些第三方的库的描述文件同步一份到本地,便于进行查询和安装,以后更新新版本的Spec项目只需要再次执行pod setup即可 。

使用CocoaPods

1、使用CocoaPods管理第三方库

使用CocoaPods需要新建一个名为Podfile的文件,以如下格式将依赖库的名字依次列在文件中,platform指的是平台的名称和版本号,'~> 2.0'这个指的是版本号,如果没有默认是最新版本。

platform :ios, '7.0'
pod 'AFNetworking', '~> 2.0'
pod 'JSONKit', '~> 1.4'
pod 'RegexKitLite'

将编辑好的Podfile文件放到项目的根目录中,cd到Podfile文件所在的目录,然后执行下面的命令:

pod install

CocoaPods会自动帮你把Podfile文件中列出来的第三方库全部下载下来,并且自动设置好变异参数和依赖关系。

补充说明:

(1)pod install命令执行完成之后终端会出现[!] From now on use CocoaPodsDemo.xcworkspace.这样一句话,意思就是从现在开始起以后打开项目使用*.xcworkspace这个来打开不再使用原来的*.xcodeproj.

(2)每次更改了Podfile文件,需要执行pod update来更新一下。

2、搜索可用的第三方库

pod search AFNetworking

执行上面的命令可用查询出和``相关的一些开源的库,下面的是查询结果的示例,可以看到库的名称,最新版本号和lis版本号等信息:

-> AFNetworking (2.3.1)
   A delightful iOS and OS X networking framework.
   pod 'AFNetworking', '~> 2.3.1'
   - Homepage: https://github.com/AFNetworking/AFNetworking
   - Source:   https://github.com/AFNetworking/AFNetworking.git
   - Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0,
   1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
   - Sub specs:
     - AFNetworking/Serialization (2.3.1)
     - AFNetworking/Security (2.3.1)
     - AFNetworking/Reachability (2.3.1)
     - AFNetworking/NSURLConnection (2.3.1)
     - AFNetworking/NSURLSession (2.3.1)
     - AFNetworking/UIKit (2.3.1)

其他配置

在日常开发中执行pod install/update时总是长时间停留在Analyzing dependencies上。这是因为在使用CocoaPods进行update或者install的时候每次会更新获取的pod specs

1、使用specs仓库镜像,执行下面的三行命令可以使用specs仓库镜像

pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update

如果想切换到oschina的源,将上面的第二行的网站替换成http://git.oschina.net/akuandev/Specs.git

第二条命令执行的时候会比较耗时,这个时候要去把整个specs仓库clone一下大概60M左右。

2、如果不想在pod install/pod update的时候不想升级specs库可以使用参数忽略掉

pod install --verbose --no-repo-update

pod update --verbose --no-repo-update

参考资料

1、《IOS 第三方管理库管理 CocoaPods》

2、《CocoaPods 安装使用》

3、《CocoaPods-iOS项目第三方库管理利器》

4、《开源框架:CocoaPods》

5、《CocoaPods官网》

6、《cocoapods specs 镜像》





cocosPod-安装问题。
在安装完其他的内容后:

1、安装 Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

- [ ] 2、出现curl(56)错误:error:curl: (56) SSLRead() return error -9806
首先安装Homebrew
其次:1、
$ php -i |grep "SSL Version"
结果:
SSL Version => SecureTransport
2、
$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/php
有可能会出现不伤大雅的警告信息:Already tapped!
然后使用openssl安装curl,这就是要替换掉原来的curl,命令如下:
$ brew install --with-openssl curl
然后使用刚才安装的curl和openssl安装php:
$ brew install /    --with-apache /    --with-homebrew-curl /    --with-homebrew-openssl /    --without-snmp php55
如果你想运行nginx,将 --with-apache 改为--with-fpm.
因为 issue #1311的缘故,--without-snmp是必须.
如果使用apache,确保添加 LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so到/etc/apache2/httpd.conf并重启apache.
安装你需要的php的其他扩展,例如 : mcrypt.
$ brew install php55-mcrypt
完成后,再次运行下面的命令:
$ php -i | grep "SSL Version"
你会看到:
SSL Version => OpenSSL/1.0.1j
好吧,这个问题就这样解决了。


- [ ] 用homebrew安装wget:brew install wget

你可能感兴趣的:(使用CocoaPods管理iOS项目中的依赖库)