CocoaPods Podfile详解与使用

1、为什么需要CocoaPods
在进行 iOS 开发的时候,总免不了使用第三方的开源库,比如SBJson、AFNetworking、Reachability等等。使用这些库的时候 通常需要:
  • 下载开源库的源代码并引入工程
  • 向工程中添加开源库使用到的framework
  • 解决开源库和开源库以及开源库和工程之间的依赖关系、检查重复添加的framework等问题
  • 如果开源库有更新的时候,还需要将工程中使用的开源库删除,重新执行前面的三个步骤,顿时头都大了。。。
自从有了CocoaPods以后,这些繁杂的工作就不再需要我们亲力亲为了,只需要我们做好少量的配置工作,CocoaPods会为我们做好一切!

2、什么是CocoaPods
CocoaPods是一个用来帮助我们管理第三方依赖库的工具 。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用。
使用CocoaPods的目的是让我们能自动化的、集中的、直观的 管理第三方开源库

安装
CocoaPods是用Ruby实现的, CocoaPods是以Ruby gem包的形式被安装的。
 sudo gem install cocoapods  
 pod setup  

查看源:
gem sources -l  
替换源
gem是管理Ruby库和程序的标准包
  1. $ sudo gem update --system  
  2. gem -v
  3. $ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/$ gem sources -lhttps://gems.ruby-china.org# 确保只有 gems.ruby-china.org


进入工程根目录,然后执行pod install命令,CocoaPods就开始为我们做下载源码、配置依赖关系、引入需要的framework等一些列工作












The Podfile is a specification that describes the dependencies of the targets of one or more Xcode projects.即 Podfile文件用来配置第三方库与一或多个Xcode项目之间的 依赖 信息。

Podfile

platform:ios, '8.0'

CocoaPods就是用于管理第三方依赖的。 我们通过Podfile文件来指定工程中的每个target之间与第三方之间的依赖。


有以下三个命令来管理依赖:
  • pod 指定特定依赖。比如指定依赖AFNetwroking
  • podspec 提供简单的API来创建podspec
  • target 通过target指定工程所依赖的范围。

pod命令 用于指定工程所依赖的第三方及第三方库的版本范围。

永远使用最新版本
pod 'HYBMasonryAutoCellHeight'
当我们永远使用远程仓库中的最新版本时,我们只需要指定仓库名即可。当有新的版本发布时,执行pod update命令,会更新至最新的版本。 因为版本之间可能会存在很大的差异,因此我们不应该采用这种方式,而是指定版本范围或者指定特定版本

指定版本范围
pod 'HYBUnicodeReadable' , '~>1.1.0'
在工程中 见到最多的 就是这种写法。
意思是:HYBUnicodeReadable的版本可以是1.1.0到2.0.0,但是不包括2.0.0


使用固定版本
pod 'HYBLoopScrollView' , '2.0'



经常使用CocoaPods来管理iOS项目中的第三方库,但是我们要使用CocoaPods来管理第三方库,前提是要写好Podfile文件,通过这个文件来配置第三方库与项目之间的依赖、版本等信息。


可以看到,工程的根目录下多了三个东西:CocoaPodsTest.xcworkspace、Podfile.lock文件和Pods目录。

执行完pod install命令打印出来的内容的最后一行:
[objc]   view plain   copy
  1. [!] From now on use `CocoaPodsTest.xcworkspace`.  
提示我们从现在起,我们需要使用CocoaPodsTest.xcworkspace文件来开发。


对于工程发生的变化,有几点需要说明:
  • 第三方库会被编译成静态库供我们正真的工程使用
CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。 整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。
  • 我们的工程和第三方库所在的工程会由一个新生成的workspace管理
为了方便我们直观的管理工程和第三方库, CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的CocoaPodsTest.xcworkspace文件。


原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。
打开CocoaPodsTest.xcworkspace



执行完pod install之后,会生成一个Podfile.lock文件。这个文件看起来跟我们关系不大,实际上绝对不应该忽略它。该文件用于保存已经安装的Pods依赖库的版本

CocoaPods是用ruby实现的,因此Podfile文件的语法就是ruby的语法。


CocoaPods常用命令
1、pod install
根据Podfile文件指定的内容,安装依赖库,如果有Podfile.lock文件而且对应的Podfile文件未被修改,则会根据Podfile.lock文件指定的版本安装。
每次更新了Podfile文件时,都需要重新执行该命令,以便重新安装Pods依赖库。


错误:
pod command not found
sudo gem install cocoapods

ERROR: SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR: You must add /O=Digital Signature Trust Co./CN=DST Root CA X3 to your local trusted store
ERROR: SSL verification error at depth 2: self signed certificate in certificate chain (19)
ERROR: Root certificate is not trusted (/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA)
ERROR: Could not find a valid gem 'xcodeproj' (< 2.0, >= 1.4.4) in any repository
ERROR: Possible alternatives: xcodeproj
解决:
0.首先要安装 Homebrew 终端输入这条命令即可 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
1.安装rvm $ curl -L get.rvm.io | bash -s stable
2.装载rvm $ source ~/.rvm/scripts/rvm
3.安装2.3.0版本ruby $ rvm install 2.3.0
4.将2.3.0设为默认 $ rvm use 2.3.0 --default
然后重新执行安装,第一次如果报错,就再运行一次。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值