CocoaPods安装涉及的知识和问题

前几天因为办公电脑出问题换了电脑,然后需要重新装cocoapods,发现每次安装都有些小问题要去网上搜,这次把问题记下来,方便下次查阅。


CocoaPods

CocoaPods是一个用ruby实现的iOS项目依赖管理工具,Github地址
在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要
1.把开源库的源代码复制到项目中
2.添加一些依赖框架和动态库
3.设置-ObjC,-fno-objc-arc等参数
4.管理他们的更新
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install.Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

安装

1
$ sudo gem update --system
1
$ sudo gem install cocoapods
1
2
3
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源镜像。可参照下面gem介绍部分的配置。

1
2
ERROR: Error installing cocoa:
activesupport requires Ruby version >= 2.2.2.

如果提示以上错误是因为ruby版本太低,需要升级,可参照下面rvm部分。

####初始化

1
$ pod setup

Terminal会停留在 Setting up CocoaPods master repo 这个状态一段时间,是因为要进行下载安装,而且目录比较大,需要耐心等待一下.如果想加快速度,可使用cocoapods的镜像索引.

1
$ pod --version

正常输出pod版本号说明安装成功

homebrew

homebrew是一个软件包管理系统

ruby

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,

gem

gem是一个管理ruby项目的包管理器

更新gem
1
$ sudo gem update --system
切换sources
1
$ gem sources --remove https://rubygems.org/
1
$ gem sources -a https://ruby.taobao.org/
1
$ gem sources -l
1
2
3
4
切换成功
*** CURRENT SOURCES ***
http://ruby.taobao.org/

rvm

管理ruby版本的版本管理器

安装rvm
1
$ curl -L get.rvm.io | bash -s stable
1
2
期间可能需要输入管理员密码,以及自动通过homebrew安装依赖包,等待一段时间看到控制台输出如下信息说明成功。
In case of problems: https://rvm.io/help and https://twitter.com/rvm_io
1
$ source ~/.bashrc
1
$source ~/.bash_profile
1
上面2个命令是为了刷新rvm环境
1
$rvm -v
1
2
检查一下是否安装正确,控制台输出如下信息说明安装成功
rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
用rvm管理ruby
1
$rvm list known
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
列出已知ruby版本
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.8]
[ruby-]2.2[.4]
[ruby-]2.3[.0]
[ruby-]2.2-head
ruby-head
# for forks use: rvm install ruby-head-<name> --url https://github.com/github/ruby.git --branch 2.2
# JRuby
jruby-1.6[.8]
jruby-1.7[.23]
jruby[-9.0.5.0]
jruby-head
# Rubinius
rbx-1[.4.3]
rbx-2.3[.0]
rbx-2.4[.1]
rbx[-2.5.8]
rbx-head

指定2.2.2版本安装

1
$ rvm install 2.2.2

如果你安装了多个版本,可以指定一个默认版本

1
$ rvm 2.2.2 --default
1
2
3
4
5
6
7
list 查询已经安装的版本
install :: install one or many ruby versions
uninstall :: uninstall one or many ruby versions, leaves their sources
remove :: uninstall one or many ruby versions and remove their sources
reinstall :: reinstall ruby and runs gem pristine on all gems,make sure to read output, use 'all' for all rubies.
migrate :: Lets you migrate all gemsets from one ruby to another.
upgrade :: Lets you upgrade from one version of a ruby to another, including migrating your gemsets semi-automatically.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
控制台输出如下信息说明成功
…… ruby-2.2.2 - #validate archive
ruby-2.2.2 - #extract
ruby-2.2.2 - #validate binary
ruby-2.2.2 - #setup
ruby-2.2.2 - #gemset created /Users/abc/.rvm/gems/ruby-2.2.2@global
ruby-2.2.2 - #importing gemset
/Users/abc/.rvm/gemsets/global.gems..............................
ruby-2.2.2 - #generating global wrappers........
ruby-2.2.2 - #gemset created /Users/abc/.rvm/gems/ruby-2.2.2
ruby-2.2.2 - #importing gemsetfile /Users/abc/.rvm/gemsets/default.gems
  evaluated to empty gem list
ruby-2.2.2 - #generating default wrappers........
Updating certificates in '/etc/openssl/cert.pem'.
mkdir: /etc/openssl: Permission denied
mkdir -p "/etc/openssl" failed, retrying with sudo
Liubin password required for 'mkdir -p /etc/openssl':
and sudo mkdir worked
坚持原创技术分享,您的支持将鼓励我继续创作!