博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CocoaPods安装和使用笔记 by STP
阅读量:4046 次
发布时间:2019-05-25

本文共 4908 字,大约阅读时间需要 16 分钟。

一、什么是CocoaPods

 

CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方开源库的时间。

在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要
1.把开源库的源代码复制到项目中
2.添加一些依赖框架和动态库
3.设置-ObjC,-fno-objc-arc等参数
4.管理他们的更新
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install.Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。

二、CocoaPods的原理

CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

三、CocoaPods的安装

CocoaPods可以方便地通过Mac自带的RubyGems安装。

打开Terminal,然后键入以下命令:
 sudo gem install cocoa pods

输入本机密码

执行完这句如果报告以下错误:

ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from  - Errno::ETIMEDOUT: Operation timed out - connect(2) ()
ERROR: Possible alternatives: cocoa pods

这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下:

 gem sources -l (查看当前ruby的源)

 gem sources --remove 
 gem sources -a 
 gem sources -l

如果gem太老,可以尝试用如下命令升级gem

 sudo gem update --system
升级成功后会提示: RubyGems system software updated

然后重新执行安装下载命令

 sudo gem install cocoa pods

输入本机密码,耐心等待几分钟

 

这时候应该没什么问题了

四、Cocoapods的使用

进入工程所在的目录(工程根目录)

执行命令

 vim Podfile

这句是说新建一个名为Podfile的文件(不能写成别的名字,也可以自己在工程根目录里面直接新建)

 

键盘输入 i,进入编辑模式,输入

platform :ios, '7.0' 

pod 'MBProgressHUD', '~> 0.9.2'

需要注意的几点:platform那一行,ios三个字母都要小写,而且与前面的冒号之间不能有间隔,后面的版本号也可以不写,但是有些开源库对版本是有要求的,比如要在6.0以上才能运行,遇到这样的开源库就需要写上版本号。

platform下面就是Cocoapods需要集成的开源库,根据你的需要确定集成那些库。

然后按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq

举个例子:

我要集成MBProgressHUD这个库类,需要在Cocoapods里面先搜索是否有需要的库,可以在Terminal中输入:
pod search MBProgressHUD
回车之后就可以看到和你搜索的关键字相关的一些库类。

其中第一个就是我们需要的,把pod ‘MBProgressHUD’, ‘~>0.9.2’

那一行复制到我们的Podfile文件中,保存修改。

注意:   (cocoapod1.0.1版本Podfile文件的内容格式要求发生了变化,必须指出指出所用第三方库的target)

 

platform:ios, '8.0'

#use_frameworks!个别需要用到它,比如reactiveCocoa

target 'XXXApp' do

pod 'AFNetworking', '~> 2.3.1'<-------第三方

end

然后在Terminal中执行 :

pod install

 

这时,有可能会遇到以下错误:

解决方案:

终端输入:sudo xcode-select -switch /Applications/Xcode.app(你的Xcode安装路径)

注意:xcode-select 之间没有空格,-switch前有空格

这样,MBProgressHUD就已经下载完成并且设置好了编译参数和依赖,以后使用的时候切记如下两点:

1.从此以后需要使用Cocoapods生成的 .xcworkspace文件来打开工程,而不是使用以前的.xcodeproj文件,如下图所示:

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

3.使用的时候还是要导入相应的头文件:#import "MBProgressHUD.h"

ps:当执行pod install之后,除了Podfile,还会生成一个名为Podfile.lock的文件,它会锁定当前各依赖库的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update才会改变Podfile.lock.在多人协作的时候,这样可以防止第三方库升级时候造成大家各自的第三方库版本不一致。所以在提交版本的时候不能把它落下,也不要添加到.gitignore中.

 

常见错误&解决方案

错误提示1

 

Error installing cocoapods:  activesupport requires Ruby version >= 2.2.2.

解决方案 :

1、安装 RVM baby 版本管理器 

$curl -L get.rvm.io | bash -s stable

//________等安装完成 出现下面这行提示以下___________

In case of problems: https://rvm.io/helpandhttps://twitter.com/rvm_io

执行

$source ~/.bashrc  

$source ~/.bash_profile  

测试是否安装正常

$rvm -v  

//________提示以下___________

rvm 1.27.0 (latest) by Wayne E. Seguin, Michal Papis[https://rvm.io/]

2、用RVM升级Ruby查看当前ruby版本

 $ruby -v 

$rvm list known

//________提示以下___________

# 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-headruby-head

# for forks use: rvm install ruby-head---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

# Opal

opal

# Minimalistic ruby implementation - ISO 30170:2012

mruby[-head]

# Ruby Enterprise Edition

ree-1.8.6

ree[-1.8.7][-2012.02]

# GoRuby

goruby

# Topaz

topaz

# MagLev

maglev[-head]

maglev-1.0.0

# Mac OS X Snow Leopard Or Newer

macruby-0.10

macruby-0.11

macruby[-0.12]

macruby-nightly

macruby-head

# IronRuby

ironruby[-1.1.3]

ironruby-head

//___________________

安装ruby 2.2.2 执行

$rvm install 2.2.2

干货1:安装ruby遇到" Installing Homebrew - Brew Command Not Found"命令找不到解决方案:

Check XCode is installed or not.

$gcc --version

$ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

$brew doctor

$brew update.

完成后 执行

$ruby -v

//–––––打印输出–––––––

ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]


6 继续安装 CocoaPods

$sudo gem install cocoa pods

//______安装成功提示如下______

Done installing documentation for nap, fourflusher, escape, colored, concurrent-ruby, thread_safe, tzinfo, i18n, activesupport, claide, xcodeproj, molinillo, cocoapods-try, netrc, cocoapods-trunk, cocoapods-stats, cocoapods-search, cocoapods-plugins, cocoapods-downloader, cocoapods-deintegrate, fuzzy_match, cocoapods-core, cocoapods after 21 seconds,23 gems installed

$pod setup

备注:苹果系统升级OS X EL Capitan 后安装改为:

$sudo gem install -n /usr/local/bin cocoapods

$pod setup

干货2:CocoaPods无限卡在Setting up CocoaPods master repo解决方案:

对于初次使用CocoaPods的同学,即使你不使用pod setup命令,在你初次执行pod install命令时,系统也会自动执行pod setup。而由于网络不稳定的原因,不挂VPN是不可能成功执行pod setup的。(我大天朝的墙啊~~~~)

$ pod repo remove master

$ git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/master

$ pod repo update

 

 

 

你可能感兴趣的文章
今日互联网关注(写在清明节后):每天都有值得关注的大变化
查看>>
”舍得“大法:把自己的优点当缺点倒出去
查看>>
[今日关注]鼓吹“互联网泡沫,到底为了什么”
查看>>
[互联网学习]如何提高网站的GooglePR值
查看>>
[关注大学生]求职不可不知——怎样的大学生不受欢迎
查看>>
[关注大学生]读“贫困大学生的自白”
查看>>
[互联网关注]李开复教大学生回答如何学好编程
查看>>
[关注大学生]李开复给中国计算机系大学生的7点建议
查看>>
[茶余饭后]10大毕业生必听得歌曲
查看>>
gdb调试命令的三种调试方式和简单命令介绍
查看>>
C++程序员的几种境界
查看>>
VC++ MFC SQL ADO数据库访问技术使用的基本步骤及方法
查看>>
VUE-Vue.js之$refs,父组件访问、修改子组件中 的数据
查看>>
Vue-子组件改变父级组件的信息
查看>>
Python自动化之pytest常用插件
查看>>
Python自动化之pytest框架使用详解
查看>>
【正则表达式】以个人的理解帮助大家认识正则表达式
查看>>
性能调优之iostat命令详解
查看>>
性能调优之iftop命令详解
查看>>
非关系型数据库(nosql)介绍
查看>>