CocoaPods安装

更新: pod repo update ->sudo gem install -n /usr/local/bin cocoapods

   每添加一个`第三方库`、`Framework`或者`SDK`,我们都需要手动添加相关依赖库,在工程
`buildsetting`中配置路径,在`build phases`中添加依赖的系统库。如果所导入的第三方库
还依赖其他第三方库,我们也需要手动导入且分别添加工程配置。

   当我们开始使用`CocoaPods`管理第三方库后,我们只需要相当少的配置,其它的一切都交由
CocoaPods来管理即可.

   // MARK: 原理
   - 它是将所有的依赖库都放到另一个名为`Pods`的项目中,然后让主项目依赖 Pods 项目,
     这样源码管理工作都从主项目移到了Pods项目中。
   - Pods项目最终会编译成一个名为`libPods.a`的文件,主项目只需要依赖这个.a文件即可。
   - 对于资源文件,CocoaPods提供了一个名为Pods-resources.sh 的 bash 脚本,该脚本
     在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
   - CocoaPods 通过一个名为 Pods.xcconfig 的文件来在编译时设置所有的依赖和参数。

   CocoaPods 是用 ruby 实现的,要想使用它首先需要有ruby环境。
虽然MAC系统默认可以运行ruby。但是ruby版本过低是无法正常支持CocoaPods的使用,所以需要
先安装更新升级 rvm 和 ruby 。

<p>

1. Homebrew、Rvm、Ruby 简介
1. 官网及相关链接
【Rvm 官网】 :   https://www.rvm.io/
【Ruby 官网】 :  https://rubygems.org/
【Rvm 安装指南 】:https://rvm.io/rvm/install
【Homebrew 官网】 :http://brew.sh/index_zh-cn.html
【ruby 镜像 - taobao】:https://ruby.taobao.org/
【ruby 镜像 - china】:https://gems.ruby-china.org/

2. Homebrew 是一个软件包管理器,用于在mac上安装一些os x上没有的Unix工具;类似于360软件管理器。
---------------------------------------------------------------------------------------------------
安装: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
---------------------------------------------------------------------------------------------------

3. Rvm (Ruby Version Manager) ,是安装和管理 ruby 的一种工具。
*"RVM is a command-line tool which allows you to easily install, 
manage, and work with multiple ruby environments from interpreters to sets of gems."*

4. Ruby 是一种面向对象的脚本语言,简单易用,功能强大。能跨平台和可移植性好等等。其实就是种脚本语言。
Ruby 的软件源使用的是亚马逊的云服务,国内网络环境下载时可能会出现各种不稳定和超时,所以自带的需要翻墙,
可以将 官方ruby源替换成国内淘宝 ruby 源(已停止维护)`https://ruby.taobao.org/ `
或者 China ruby 源 `https://gems.ruby-china.org/ `。
2. CocoaPods 安装

第一步:检查安装 rvm 环境
不管需不需要升级 ruby,rvm 可以让你拥有多个版本的Ruby,并且可以在多个版本之间自由切换。

查看是否安装:
$ rvm -v 
输出结果:
1> 存在 rvm 环境
MacBook-Pro:~ coder$ rvm -v
rvm 1.29.1 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/]

2> 不存在 rvm 环境
MacBook-Pro:~ coder$ rvm -v
-bash: rvm: command not found
/**
  如果不存在 rvm 环境,先安装配置 rvm 环境 ,, ***网络设置DNS 8.8.8.8

  指令安装:
  $ curl -L get.rvm.io | bash -s stable

  然后,载入 RVM 环境
  $ source ~/.bashrc
  $ source ~/.bash_profile

  等待终端加载完毕,后输入
  $ rvm -v
  如果能显示版本号则安装成功了。
*/

-----------------------------------------------------------------------------------------------------
以上方法如遇失败,可尝试以下方法:

1、浏览器打开 get.rvm.io ,打不开的话就挂代理
2、cmd+A复制全部内容
3、命令行输入 cd Desktop 进入桌面
4、输入 touch install.sh 创建脚本文件
5、桌面打开install.sh 粘贴第二步内容
6、把 install.sh 文件拖入终端执行,
如果提示 Permission denied 权限问题就输入 chmod 777 
然后拖入 install.sh 文件,然后再拖入一遍执行
7、然后终端应该会显示成功了,接下来接着执行命令安装
source ~/.bashrc
source ~/.bash_profile
8、完成后输入 rvm -v 能出现版本号就成功了
-----------------------------------------------------------------------------------------------------

第二步:检查 ruby 版本环境
CocoaPods目前安装需要Ruby的版本大于2.2.2,不然会报错:Error installing pods: activesupport requires Rubyversion >= 2.2.2.目前Mac系统默认自带是2.0,所以需要升级。

查看已安装的ruby:
$ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
列出ruby可安装的版本信息
$ rvm list known
指定 ruby 版本进行更新
$ rvm install 2.4.0
这里一定要设置为默认版本
$ rvm use 2.4.0 --default

等待时间,完成后 Ruby Gems 就安装好了

补充:
1.卸载一个已安装版本
$ rvm remove 1.9.2

2.检查 gem ruby 版本号
$ sudo gem -v

3.更新 gem ruby 版本号:(建议 升级到 2.6.x 以上)
$ gem update --system

第三步:更换源

1.更新gem
$ sudo gem update --system

2.先移除现有的源
$ gem sources --remove https://rubygems.org/
如果安装了淘宝的镜像
$ gem sources --remove https://ruby.taobao.org/ 

3.使用新的源
$ gem sources --a https://gems.ruby-china.com/

4.验证新源是否替换成功
$ gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.com/

说明 CocoaPods 前期配置完毕

第四步:安装Cocoapods

选择一:
1.在终端输入以下命令:
$ sudo gem install -n /usr/local/bin cocoapods
$ pod setup

这个过程会很慢,要耐心等待
选择二:
1.执行:
$ git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master

2.切记要:
$ pod repo update
感觉也就几分钟的样子,

先随便搜索一个第三方库,如:
$ pod search AFNetWorking
有结果不报错说明已经安装成功了。
选择三:
把你同事已经装好了CocoaPods
cocoapods目录下的 repo 目录拷贝下来,放进自己的目录里。
  
$ pod setup
验证是否安装成功

$ pod --version
如果验证成功,显示版本号,说明可以安装全部完成.
如果显示-bash: po: command not found,说明没有装好

3. 使用

简便方法: cd项目 -> pod init -> podfile中输入
`pod 'AFNetworking', '~> 3.1.0'` -> pod install即可.

1.cd 到目录文件夹
$ cd /Users/ln/Desktop/TestDemo

2.提示
建议先查找一下当前所需第三方库的最新版本,如:
$ pod search 'AFNetworking'

3.创建 Podfile 配置文件
$ vim Podfile

4.键盘输入 i ,进入 Podfile 配置文件的编辑模式
按一次 Esc 按键退出编辑模式

5.保存并退出
:wq
这时候,你会发现你的项目目录中,出现一个名字为 Podfile 的文件,而且文件内容就是你刚刚输入的内容。注意, Podfile 文件应该和你的工程文件 .xcodeproj 在同一个目录下。

6.下载第三方库文件到项目工程中
$ pod install

每次更改了 Podfile 文件,你需要重新执行一次 pod update 命令。

CocoaPods 在执行 pod install 和 pod update 时,会默认先更新一次 CocoPods 的 spec 仓库索引。使用 --no-repo-update 参数可以禁止其做索引更新操作
$ pod install --no-repo-update
$ pod update --no-repo-update
4.【卸载 CocoaPods 安装】和【回退到指定 CocoaPods 版本】
卸载 CocoaPods 安装
$ sudo gem uninstall cocoa pods

回退到指定 CocoaPods 版本
$ sudo gem install -n /usr/local/bin cocoapods --version 0.39
5. 查看 CocoaPods 下载进度
还有一点需要注意, pod setup 在执行时,会输出 Setting up CocoaPods master repo ,但是会等待比较久的时间。这步其实是 Cocoapods 在将它的信息下载到 ~/.cocoapods 目录下,如果你等太久,可以试着 cd 到那个目录,用 du -sh * 来查看下载进度
执行语句
$ sudo gem install -n /usr/local/bin cocoapods
6. 使用 pod install 命令安装框架后的大致过程:
1.分析依赖:该步骤会分析Podfile,查看不同类库之间的依赖情况。
如果有多个类库依赖于同一个类库,但是依赖于不同的版本,那么cocoaPods会自动设置一个兼容的版本。

2.下载依赖:根据分析依赖的结果,下载指定版本的类库到本地项目中。

3.生成Pods项目:创建一个Pods项目专门用来编译和管理第三方框架,
CocoaPods会将所需的框架,库等内容添加到项目中,并且进行相应的配置。

4.整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接。
7. 移除CocoaPods
1.删除工程文件夹下的Podfile、Podfile.lock和Pods文件夹。
2.删除xcworkspace文件。
3.打开xcodeproj文件,删除项目中的Pods文件夹及Pods.xcconfig引用和libpods.a:
4.打开Build Phases选项,删除Check Pods Manifest.lock和Copy Pods Resources,以及Embeded Pods Frameworks:
5.完成,编译运行,无错通过。
错误: ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
      Unable to download data from https://gems.ruby-china.org/ - SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert handshake failure (https://gems-ruby-china.b0.aicdn.com/specs.4.8.gz)

执行下这个命令:Xcode-select --install 并安装

错误: 升级CocoaPods遇到 ERROR: While executing gem ... (TypeError) no implicit conversion of nil into String

如图:

image

解决方法:先更新 Ruby

sudo gem update --system
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 王安石说过,世之奇伟瑰怪非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。 所从事的工作缺乏创意和动力...
    毫无章法阅读 6,756评论 0 0
  • 傍晚、黄昏,太阳的余热开始从院子里消退的时候,奶奶唤正在看《雨季不再来》的我去帮忙筹备晚饭。我正在感受三毛在二毛阶...
    栖梦茶舍阅读 1,846评论 0 0