一.查看下当前ruby版本
打开终端输入 ruby -v
(Mac OS本身自带Ruby,但还是更新一下保险,因为第一次安装在没有更新Ruby的情况下有可能失败)
二、升级Ruby环境
sudo gem update --system
注意若更新Ruby环境错误输入
sudo gem update -n /usr/local/bin --system
三:安装CocoaPods时我们要访问cocoapods.org,用淘宝的RubyGems镜像来代替官方版本,执行以下命令:
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
四.验证是否更换成功
gem sources -l
五.安装CocoaPods
sudo gem install cocoapods
注意:如果使用sudo gem install cocoapods 出现错误请使用下面命令:
sudo gem install -n /usr/local/bin cocoapods
或者
// 执行下面的命令并重启
sudo nvram boot-args="rootless=0"
sudo reboot
六、 在终端中输入如下命令来完成安装(此步骤不是必须的)
pod setup
七.使用CocoaPods
1.创建一个项目,工程名字:TestCocoapods
2.终端进入项目目录
cd:切换路径(进入到项目文件)
3.在项目目录创建Podfile(配置文件)
touch Podfile
4.打开编辑Podfile(配置文件)
open Podfile
5.执行pod install.(初始化)
pod install
进阶篇(补充)
1.使用search命令搜索类库名
pod search AFNetworking
2.关于Podfile文件编辑时,第三方库版本号的各种写法:
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的版本,相当于>=0.1.2并且<0.2.0
pod ‘AFNetworking’, ‘~>0.1′ //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0′ //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
3.如何从本地添加私有三方库呢?(如何创建私有三方库呢?)
//1.从本地文件夹添加
pod ’ AFNetworking’, :path => ‘~/Documents/AFNetworking'
//2.从主分支添加
pod ‘ AFNetworking’, :git => ’https://github.com/AFNetworking/AFNetworking.git'
//3.从次分支添加
pod'AFNetworking',:git=>'https://github.com/AFNetworking/AFNetworking.git',:branch=>'dev'
//4.用指定的tag
pod'AFNetworking',:git=>'https://github.com/AFNetworking/AFNetworking.git',:tag=>'3.1.0'
//5.用指定的commit
pod'AFNetworking',:git=>'https://github.com/AFNetworking/AFNetworking.git',:commit=>'0f506b1c45'
4.pod update 和 pod install的区别
pod install:
1.每次如果下载新的pods的时候,都会把版本的信息写进podfile.lock中,podfile.lock会追踪这些版本,并且锁定这些版本.当你用这个命令的时候,他只会下载Podfile.lock中不存在的三方库.他也只会去下载Podfile.lock中记录的版本,而不会是检测一个更新的版本.如果没有Podfile.lock中没有指定版本,他会去搜索Podfile文件中对应的版本,如果不指定版本,默认为最新版本.
2.该命令是在你第一次在项目中获取库的时候使用,并且每次对的Podfile文件编辑的时候(添加、修改、删除)使用。
3.每次运行pod install命令后,都会下载安装新的库,并且会修改Podfile.lock文件中记录。
4.Podfile.lock文件的作用就是追踪和锁定这些苦的版本的。
运行pod install后,它只是仅仅安装Podfile文件中的指定版本的库而已。并不会去检查和更新最新的版本。
pod update:
1.会直接去找最新的三方库,而不会去管Podfile.lock中的版本,他会一直下载最新版本,如果你指定了版本,他会下载你指定版本中最新的版本.如果使用 pod update,那么他会将你 Podfile中的所有三方库都更新成最新的版本.而且他会把Podfile.lock中的版本更改成对应的版本.
2.该命令是尽可能的更新最新的三方库。pod update PODNAME是指定更新这个库的最新版本。前提是要符合Podfile对应库的版本限制。如果没有加pod ‘myPod’, ‘~>1.2’这种版本限制。则会更新最新的版本。
3.如果使用pod update 不带PODNAME,CocoaPods将会去更新Podfile文件的所有的库的最新版本。
pod install 和pod update使用场景:
1.使用pod update PODNAME可以去更新一个库的指定版本(检查相应的库是否存在更新的版本,并且更新),相对应的,使用pod install将不会更新那些已经下载安装了的库。
2.当你在Podfile中添加了一个新的库时,你应该使用pod install命令,而不是pod udpate,这样安装了新增的库,也不会重复安装已经存在的库。
3.使用pod update仅仅只是去更新指定库的版本(或者全部库)。
5.项目存在多个Target的时候,需要配置Podfile文件来支持新增加的Target,否则只支持项目默认建立时生成的Target
a.如果新建一个Target,命名为TestCocoapods2,并且TestCocoapods2与TestCocoapods两个Target所需要的第三方支持相同,也就是使用相同的Pods依赖库,则可以使用
link_with关键字:
link_with 'TestCocoapods', 'TestCocoapods2'
platform :ios, '8.0'
use_frameworks!
pod 'AFNetworking', '~> 2.0'
b.如果不同的Target需要不同的依赖库
platform :ios, '8.0'
use_frameworks!
target :'TestCocoapods' do
pod 'Reachability'
pod 'SBJson'
pod 'AFNetworking'
end
target :'TestCocoapods2' do
pod 'OpenUDID'
end
c.OC版本如下:
platform :ios, '8.0'
target '工程名' do
pod 'AFNetworking', '~> 3.0'
end
d.Swift版本如下:
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'SnapKit', '~> 3.0.2'
end
6.工程的根目录下多了三个东西:CocoaPodsDemo.xcworkspace、Podfile.lock文件和Pods目录。
提示我们从现在起,我们需要使用CocoaPodsDemo.xcworkspace文件来进行开发。对于Podfile.lock需要了解几点:
1:第一次 pod install 时生成记录每个 Pod 版本
2:Podfile.lock 锁定当前各依赖库的版本之后 pod install 不会更改版本pod update 才会改版本
3:多人协作时防止第三方库升级时造成版本不一致
对于工程发生的变化,有几点需要理解:
1:第三方库会被编译成静态库供我们正真的工程使用
CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。
2:我们的工程和第三方库所在的工程会由一个新生成的workspace管理
为了方便我们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的CocoaPodsTest.xcworkspace文件。