不是使用cocoaPods引入第三方库的步骤:
1.把开源库的源代码复制到项目中
2.添加一些依赖框架和动态库-----target ---buildPhases----linkBinaryWithLibraries----addOther---选择静态库的路径添加
3.设置-ObjC,-fno-objc-arc等参数
4.管理他们的更新
使用cocoaPods下载的框架,导入头文件时,用<>
使用了cocoa pods以后打开工程用xcdWorkspace.
CocoaPods的原理:
CocoaPods可以方便地通过Mac自带的RubyGems安装。
1.打开Terminal,然后键入以下命令:
sudo gem install cocoapods
执行完这句如果报告以下错误:
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)
ERROR: Possible alternatives: cocoa pods
这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下:
2.查看源 gem sources -l (查看当前ruby的源)
3.删除源gem sources --remove https://rubygems.org/ 或者删除sudo gem sources -rhttps://rubygems.org
出现这句话标示成功添加https://ruby.taobao.org added to sources
5.查看源 gem sources -l
6.如果gem太老,可以尝试用如下命令升级gem
sudo gem update --system
出现这句话表示升级不成功Latest version currently installed. Aborting.
如果出现下面的话:表示路径设置错误:
7.然后重新执行安装下载命令
sudo gem install cocoaPods
安装成功出现下面Successfully installed cocoapods-0.39.0
Parsing documentation for cocoapods-0.39.0
1 gem installed
8.执行设置:
pod setup
如果没有报错说明安装成功了;
Terminal会停留在 Setting up CocoaPods master repo 这个状态一段时间,是因为要进行下载安装,而且目录比较大,需要耐心等待一下.如果想加快速度,可使用cocoapods的镜像索引.
所有项目的Podspec文件都托管在https://github.com/CocoaPods/Specs,
第一次执行pod setup时,CocoaPods会将这些podspec索引文件更新到本地的~/.cocoapods目录下,
这个索引文件比较大,所以第一次更新时非常慢.
友好人士在国内的服务器建立了Cocoapods索引库的镜像,
所以执行索引跟新操作时候会快很多.具体操作方法如下:
$ pod repo remove master
$ pod repo add master https://gitcafe.com/akuandev/Specs.git
$ pod repo update
这是使用gitcafe上的镜像,将以上代码中的 https://gitcafe.com/akuandev/Specs.git
替换成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的镜像。
=======================================
cocoaPods的使用方法一:
2.cd 进入工程所在的目录(工程根目录)
3.创建Podfile
执行命令 touch Podfile或者也可以自己在工程根目录里面直接新建一个名为Podfile的文件,不能写成别的名字,)
然后对改文件进行编辑,执行命令 open -e Podfile
第一次执行这个命令,会有一个空白文件打开,可以先放在一边,
Podfile文件的格式应该如下:
platform :ios, '7.0'
pod 'AMap2DMap', '~> 2.5.0'
pod 'AFNetworking', '~> 2.5.3'
pod 'SDWebImage', '~> 3.7.2'
需要注意的几点:platform那一行,ios三个字母都要小写,而且与前面的冒号之间不能有间隔,后面的版本号也可以不写,但是有些开源库对版本是有要求的,比如要在6.0以上才能运行,遇到这样的开源库就需要写上版本号。如果是swift,还需要 在podfile文件中加入这句话:use_frameworks!
3.下载第三方框架pod install 或者pod install --verbose --no-repo-update或者pod install --no-repo-update
4.升级框架:pod update
cocoaPods的使用方法二:
使用CocoaPods
a 新建一个项目,名字PodTest
b 终端中,cd到项目总目录(注意:包含PodTest文件夹、PodTest.xcodeproj、PodTestTest的那个总目录)
接着上一步,终端输入 vim Podfile
键盘输入 i,进入编辑模式,输入
platform :ios, '7.0'
pod 'MBProgressHUD', '~> 0.8'
然后按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq
注意:键盘输入 :后,才能输入wq。回车后发现PodTest项目总目录中多一个Podfile文件
激动人心的时刻到了:确定终端cd到项目总目录,然后输入 pod install,等待一会,大约3分钟。
查看项目根目录:
cocoaPods 使用方法三:
使用A'lcartraz(管理xcode插件的工具)来创建podFile文件
Podfile和多个target
Podfile本质上是用来描述Xcode工程中的targets用的 。如果我们不显式指定Podfile对应的target,CocoaPods会创建一个名称为default的隐式target,会和我们工程中的第一个target相对应。换句话说, 如果在Podfile中没有指定target,那么只有工程里的第一个target能够使用Podfile中描述的Pods依赖库。
如果想在一个Podfile中同时描述project中的多个target,根据需求的不同,可以有不同的实现方式。为了说明问题,在原来的工程中再创建一个名称为Second的target,现在的project中包含的target有:
①多个target中使用相同的Pods依赖库
link_with 'CocoaPodsTest', 'Second' platform :ios pod 'Reachability', '~> 3.0.0' pod 'SBJson', '~> 4.0.0' platform :ios, '7.0' pod 'AFNetworking', '~> 2.0'这种写法就实现了CocoaPodsTest和Second两个target共用相同的Pods依赖库。
②不同的target使用完全不同的Pods依赖库
target :'CocoaPodsTest' do platform :ios pod 'Reachability', '~> 3.0.0' pod 'SBJson', '~> 4.0.0' platform :ios, '7.0' pod 'AFNetworking', '~> 2.0' end target :'Second' do pod 'OpenUDID', '~> 1.0.0' end
其中,do/end作为开始和结束标识符。
pod 'AFNetworking' //不显式指定依赖库版本,表示每次都获取最新版本 pod 'AFNetworking', '2.0' //只使用2.0版本 pod 'AFNetworking', '> 2.0' //使用高于2.0的版本 pod 'AFNetworking', '>= 2.0' //使用大于或等于2.0的版本 pod 'AFNetworking', '< 2.0' //使用小于2.0的版本 pod 'AFNetworking', '<= 2.0' //使用小于或等于2.0的版本 pod 'AFNetworking', '~> 0.1.2' //使用大于等于0.1.2但小于0.2的版本 pod 'AFNetworking', '~>0.1' //使用大于等于0.1但小于1.0的版本 pod 'AFNetworking', '~>0' //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
======================================
常见错误:
Error fetching http://ruby.taobao.org/:
bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
解决方案:把安装流程中 $ gem sources -a http://ruby.taobao.org/
改为:$ gem sources -a https://ruby.taobao.org/
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
解决方案:苹果系统升级 OS X EL Capitan 后会出现的插件错误,将安装流程 5.安装 CocoaPods 的 sudo gem install cocoapods
改为 sudo gem install -n /usr/local/bin cocoapods
[!] Unable to satisfy the following requirements:
- `AFNetworking (~> 2.3.1)` required by `Podfile`
Specs satisfying the `AFNetworking (~> 2.3.1)` dependency were found, but they required a higher minimum deployment target.
解决方案:Podfile 文件 中 platform:ios, ‘8.0’ 后边的 8.0 是平台版本号 ,一定要加上