iOS·实用工具详解CocoaPods「安装+问题解决+活用」持续更新

栏目: IOS · 发布时间: 7年前

内容简介:iOS·实用工具详解CocoaPods「安装+问题解决+活用」持续更新

引导

对你有帮助或是喜欢,你的 「Star & Fork」 是对我最大的赞赏 !

简书原文 http://www.jianshu.com/p/97cd9ca92b25

在开发 OS XiOS 应用程序中, CocoaPods 作为库依赖管理 工具 就是一把利器。

iOS·实用工具详解CocoaPods「安装+问题解决+活用」持续更新
 CocoaPods

相信很多开发者跟我当初一样,在 CocoaPods 的安装上踩了无数的坑,接着就是报错问题一个一个的来,以至于不能正常使用,更不用说活用的技巧了。作为【iOS 程序员】的我们,掌握CocoaPods 的使用是必不可少的基本技能了。

本着好好学习,一劳永逸的目地,所以写了 实用学习总结。并亲测成功,整理了一份相关资料。

本文为「简书-白开水ln」作者原创;我的写作,希望能简化到初学者尽快入门和老司机繁琐回顾 ^_^.

在「时间 & 知识 」有限内,总结的文章难免有「未全、不足 」的地方,还望各位好友指出,以提高文章质量。

Contents【相关介绍】

1. CocoaPods 是什么?

CocoaPods是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具。利用 CocoaPods,可以定义自己的依赖关系 (称作 pods),并且随着时间的变化,以 及在整个开发环境中对第三方库的版本管理非常方便。

2. CocoaPods 背后的理念主要体现在两个方面

  • 在工程中引入第三方代码 会涉及到许多内容。针对 Objective-C 初级开发者来说,工程文件的配置会让 人很沮丧。

  • 在配置 build phaseslinker flags 过程中,会引起许多人为因素的 错误, CocoaPods 简化了这一切 ,它能够自动配置编译选项,而且涉及到第三方库的更新升级也可以通过 CocoaPods 进行手动管理更新。

3. CocoaPods 的原理

  • 它是将所有的依赖库都放到另一个名为 Pods 项目中,然后 让主项目依赖 Pods 项目,这样,源码管理工作都从主项目移到了Pods项目中。

  • Pods项目最终会编译成一个名为 libPods.a 的文件,主项目只需要依赖这个 .a 文件即可。

  • 对于资源文件, CocoaPods 提供了一个名为 Pods-resources.shbash 脚本 ,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目 标目录中。

  • CocoaPods 通过一个名为 Pods.xcconfig 的文件来在编译时设置所有的依赖 和 参数。

CocoaPods 是用 ruby 实现的,要想使用它首先需要有 ruby 的环境。幸运的是 OS X系统 默认已经可以运行 ruby 了。但是有时候 ruby 版本过低是无法正常支持 CocoaPods 的使用,所以需要先安装更新升级 rvmruby

3. Homebrew、Rvm、 Ruby 简介

  1. Homebrew 介绍

    Homebrew 是一个软件包管理器,用于在 mac 上安装一些 os x 上没有的 UNiX 工具;类似于360软件管理器。

  2. Rvm 介绍

    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.

  3. Ruby 介绍

    Ruby是一种面向对象的脚本语言,简单易用,功能强大。能跨平台和可移植性好等等。其实就是种脚本语言。

    Ruby的软件源使用的是亚马逊的云服务,国内网络环境下载时可能会出现各种不稳定和超时,

    所以自带的需要翻墙,可以将 官方 ruby 源 替换成国内 淘宝 ruby 源( https://ruby.taobao.org/

    或者是由 China ruby 源 ( https://gems.ruby-china.org/ )。

    据消息了解,2016.06【taboo Gems】停止维护了,建议使用 【ruby-china】源。

Installation【CocoaPods 安装】

第一步:检查安装 rvm 环境

提示:不管需不需要升级 ruby,rvm 可以让你拥有多个版本的Ruby,并且可以在多个版本之间自由切换。如果已经安装过跳到第2步。

查看是否安装
$ rvm -v 

输出结果:( 存在 rvm 环境)
LNdeMacBook-Pro:~ sunhui$ rvm -v
rvm 1.29.1 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/]

输出结果:(不存在 rvm 环境)
LNdeMacBook-Pro:~ sunhui$ rvm -v
-bash: rvm: command not found
情况二:如果不存在 rvm 环境,先安装配置 rvm 环境
① 指令安装 rvm
$ curl -L get.rvm.io | bash -s stable

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

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

第二步:检查 ruby 版本环境

提示:CocoaPods 目前安装需要Ruby的版本大于2.2.2,不然会报错: Error installing pods: activesupport requires Rubyversion >= 2.2.2 。目前Mac系统默认自带是2.0,所以需要升级。

① 查看已安装的ruby:
$ ruby -v

② 列出ruby可安装的版本信息
rvm list known

③ 指定 ruby 版本进行更新
$ rvm install 2.3.0

④ 这里一定要设置为默认版本
rvm use 2.3.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

第三步:更换源

我们需要来修改更换源(由于国内被墙)所以要把源切换至 ruby-china 在终端执行以下命令

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.org/

4.验证新源是否替换成功
$ gem sources -l

只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
说明 CocoaPods 前期配置完毕

第四步:安装Cocoapods

提示: 安装 CocoaPods( sudo 表示管理员执行指令 )( 此处需要输入一次密码 )

这里有几种选择,你看心情来吧 ~

选择一:

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
感觉也就几分钟的样子,
iOS·实用工具详解CocoaPods「安装+问题解决+活用」持续更新
CocoaPods 安装,有如图就正常了

先随便搜索一个第三方库,如:

$ pod search AFNetWorking
有结果不报错说明已经安装成功了。

选择三:

把你同事已经装好了CocoaPods
cocoapods目录下的 repo 目录拷贝下来,放进自己的目录里。
再  
$ pod setup。

验证是否安装成功

$ pod --version

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

Getting Started【开始使用】

第一步 :

我们先创建这个神奇的 PodFile 。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile

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

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

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

第二步 :

键盘输入 i ,进入 Podfile 配置文件的编辑模式

Podfile 配置文件固定语句:

说明:可能有些人看到的固定语句不一样,但是大同小异,基本上都能实现最终效果。
(~> 可以指定对应版本,不指定默认为最新版本)

# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
target 'LNTestDemo' do // 你的项目名称,自行替换

# Uncomment this line if you're using Swift or would like to use dynamic frameworks
# Pods for LNTestDemo
pod 'AFNetworking', '~>3.1.0'
pod 'SDWebImage'
pod 'MBProgressHUD'
pod 'FMDB'
pod 'Masonry'
pod 'MJExtension'
pod 'MJRefresh'
# use_frameworks!
# pod 'ReactiveCocoa'
end

按一次 Esc 按键退出编辑模式

保存并退出
:wq

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

现在,你就可以利用CocoPods下载 AFNetworking 等类库了。还是在终端中的当前项目目录下,运行以下命令:

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

注意:

1、以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,

而不是之前的 .xcodeproj 文件。否则无法关联pod下来的类库。

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

3、 CocoaPods 在执行 pod installpod update 时,会默认先更新一次 CocoPodsspec 仓库索引。使用 --no-repo-update 参数可以禁止其做索引更新操作

$ pod install --no-repo-update
$ pod update --no-repo-update

4、验证框架是否支持cocoaPods

$ pod search MJRefresh

提供: 在线搜索验证在线,能搜出说明支持 https://cocoapods.org

5、 cocoaPods 隐藏目录

  • 前往—>个人—>.cocoapods
  • .cocoapods/repos/master/Specs放着所有第三方库的索引文件,如下图
    iOS·实用工具详解CocoaPods「安装+问题解决+活用」持续更新
    cocoaPods-->master/Specs

技巧:如果master/Specs下载不成功,试着,手动拷贝这个目录试试

6、【卸载 CocoaPods 安装】和【回退到指定 CocoaPods 版本】

卸载 CocoaPods 安装
$ sudo gem uninstall cocoa pods

回退到指定 CocoaPods 版本
$ sudo gem install -n /usr/local/bin cocoapods --version 0.39

7、查看 CocoaPods 下载进度

还有一点需要注意, pod setup 在执行时,会输出 Setting up CocoaPods master repo ,但是会等待比较久的时间。这步其实是 Cocoapods 在将它的信息下载到 ~/.cocoapods 目录下,如果你等太久,可以试着 cd 到那个目录,用 du -sh * 来查看下载进度

执行语句
$ sudo gem install -n /usr/local/bin cocoapods

8、在使用时,导入第三方库,应是 < >

#import <UIImageView+WebCache.h>
#import <AFNetworking.h>

9、使用 pod install 命令安装框架后的大致过程:

1.分析依赖:该步骤会分析Podfile,查看不同类库之间的依赖情况。
如果有多个类库依赖于同一个类库,但是依赖于不同的版本,那么cocoaPods会自动设置一个兼容的版本。

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

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

4.整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接。
iOS·实用工具详解CocoaPods「安装+问题解决+活用」持续更新
CocoaPods 正常使用

CocoaPods【安装过程中报错问题解决】

说明:此部分所列举的问题均是在执行相关指令时出现的报错

1、Rvm 环境搭建

1.报错指令:
$ rvm install 2.3.0

2.报错问题:
Error running 'requirements_osx_brew_update_system ruby-2.3.0',
showing last 15 lines of /Users/jijiucheng/.rvm/log/1475769205_ruby-2.3.0/update_system.log
......
......
Requirements installation failed with status: 1.

curl: (35) Server aborted the SSL handshake

3.报错原因:
网络问题,因为需要翻墙,所以网络不稳定;建议选择 VPN,保证线路的稳定性。

4.问题解决:(指令一行一行输入)
$ cd /usr/local
$ git remote set-url origin git://mirrors.ustc.edu.cn/brew.git
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bashrc

5.解决方案:

解决方案连接:https://segmentfault.com/q/1010000004276750

1.报错指令:
$ rvm install 2.3.0

2.报错信息:
Error running '__rvm_make -j 1',
showing last 15 lines of /Users/jijiucheng/.rvm/log/1475769349_ruby-2.3.0/make.log
......
......
There has been an error while running make. Halting the installation.

3.报错原因:
缺少 Xcode 工具,xcode command line

4.问题解决:
$ xcode-select --install
1.报错指令:
$ rvm install 2.3.0

2.报错信息:
muxuguixiandeMacBook-Pro:local jijiucheng$ rvm install 2.3.0
Already installed ruby-2.3.0.
To reinstall use:
.
rvm reinstall ruby-2.3.0
.
Gemset '' does not exist, 'rvm ruby-2.3.0 do rvm gemset create ' first, or append '--create'.

3.报错原因:
指令不对,已经存在 ruby-2.3.0 的文件残留,需要重新安装;

4.问题解决:
$ rvm reinstall ruby-2.3.0

2、Ruby 环境搭建

待总结 ~ ~

欢迎你补充,我会及时加上,相互学习,我们的分享会让很多人少踩一些坑,少花费一点时间,学习到实用的知识。

可下面留言~

3、CocoaPods 配置使用

1.报错指令:
$ pod install

2.报错信息:
muxuguixiandeMacBook-Pro:NFCustomer jijiucheng$ pod install
Setting up CocoaPods master repo
[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master`.
You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.

3.报错原因:
由于安装了多个Xcode导致路径变了,需要变换路径:
sudo xcode-select -switch /Applications/Xcode.app 
sudo xcode-select -switch /Applications/Xcode\ 2.app

4.问题解决:
$ sudo xcode-select -switch /Applications/Xcode.app

5.资料补充:
出现 Setting up CocoaPods master repo,说明 Cocoapods 在将它的信息下载到  ~/.cocoapods 里;
新创建终端窗口,输入 cd ~/.cocoapods ,回车,输入 du -sh *  命令来查看文件大小,
每隔几分钟查看一次,这个目录最终大小是100多M( 本人这里大概 800M + ),就是完成了。

instruction【指令补充】

1、Rvm 指令库

$ ruby -v                     #  查看ruby 版本 
$ rvm list known              #  列出已知的 ruby 版本
$ rvm install 2.3.0           #  选择指定 ruby 版本进行更新 
$ rvm get stable              #  更新 rvm
$ rvm use 2.2.2               #  切换到指定 ruby 版本
$ rvm use 2.2.2 --default     #  设置指定 ruby 版本为默认版本  
$ rvm list                    #  查询已安装的 ruby 版本 
$ rvm remove 1.9.2            #  卸载移除 指定 ruby 版本

$ curl -L https://get.rvm.io | bash -s stable          #  安装 rvm 环境
$ curl -sSL https://get.rvm.io | bash -s stable --ruby #  默认安装 rvm 最新版本
$ curl -sSL https://get.rvm.io | bash -s stable --ruby=2.3.0 # 安装 rvm 指定版本
$ source ~/.rvm/scripts/rvm   #  载入 rvm

2、gem 指令库

$ gem -v                                  #  查看 gem 版本
$ gem source                              #  查看 gem 配置源
$ gem source -l                           #  查看 gem 配置源目录
$ gem sources -a url                      #  添加 gem 配置源(url 需换成网址)
$ gem sources --add url                   #  添加 gem 配置源(url 需换成网址)
$ gem sources -r url                      #  删除 gem 配置源(url 需换成网址)
$ gem sources --remove url                #  删除 gem 配置源(url 需换成网址)
$ gem update                              #  更新 所有包
$ gem update --system                     #  更新 Ruby Gems 软件
$
$ gem install rake                        #  安装 rake,从本地或远程服务器
$ gem install rake --remote               #  安装 rake,从远程服务器
$ gem install watir -v 1.6.2              #  安装 指定版本的 watir
$ gem install watir --version 1.6.2       #  安装 指定版本的 watir
$ gem uninstall rake                      #  卸载 rake 包
$ gem list d                              #  列出 本地以 d 打头的包
$ gem query -n ''[0-9]'' --local          #  查找 本地含有数字的包
$ gem search log --both                   #  查找 从本地和远程服务器上查找含有 log 字符串的包
$ gem search log --remoter                #  查找 只从远程服务器上查找含有 log 字符串的包
$ gem search -r log                       #  查找 只从远程服务器上查找含有log字符串的包
$
$ gem help                                #  提醒式的帮助
$ gem help install                        #  列出 install 命令 帮助
$ gem help examples                       #  列出 gem 命令使用一些例子
$ gem build rake.gemspec                  #  把 rake.gemspec 编译成 rake.gem
$ gem check -v pkg/rake-0.4.0.gem         #  检测 rake 是否有效
$ gem cleanup                             #  清除 所有包旧版本,保留最新版本
$ gem contents rake                       #  显示 rake 包中所包含的文件
$ gem dependency rails -v 0.10.1          #  列出 与 rails 相互依赖的包
$ gem environment                         #  查看 gem 的环境
$
$ sudo gem -v                             #  查看 gem 版本(以管理员权限)
$ sudo gem install cocoa pods             #  安装 CocoaPods(以管理员权限)
$ sudo gem install cocoapods              #  安装 CocoaPods(以管理员权限)
$ sudo gem install cocoapods --pre        #  安装 CocoaPods 至预览版(以管理员权限)
$ sudo gem install cocoapods -v 0.39.0    #  安装 CocoaPods 指定版本(以管理员权限)
$ sudo gem update cocoapods               #  更新 CocoaPods 至最新版(以管理员权限)
$ sudo gem update cocoapods --pre         #  更新 CocoaPods 至预览版(以管理员权限)
$ sudo gem uninstall cocoapods -v 0.39.0  #  移除 CocoaPods 指定版本(以管理员权限)
本文为「简书-白开水ln」作者原创;我的写作,希望能简化到初学者尽快入门和老司机繁琐回顾 ^_^.

3、pod 指令库

$ pod setup         
# CocoaPods 将信息下载到~/.cocoapods/repos 目录下。
如果安装 CocoaPods 时不执行此命令,在初次执行 pod intall 命令时,系统也会自动执行该指令

$ pod --version      #  检查 CocoaPods 是否安装成功及其版本号
$ pod install        #  安装 CocoaPods 的配置文件 Podfile

CocoaPods 均可参考的资料

01 rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决

02 2017最新CocoaPods安装

03 CocoaPods: pod search 搜索类库失败的解决办法

04整理Cocoapods安装

05cocoa pods安装报错

06新手安装CocoaPods

07 安装cocoaPods以及在OSX10.11.5问题总结

08 CocoaPods安装过程与问题解决

09 Cocoapods 的安装和使用以及问题解决

10 最新cocoapods步骤(主要针对Xcode8以上)

11 创建CocoaPods的制作过程

12 CocoaPods新版使用,遇到的那些坑!

13

期待

  • 如果在阅读过程中遇到 error,希望你能 Issues 我,谢谢。

  • 如果你想为【CocoaPods相关】 分享点什么,也希望你能 Issues 我,我非常想为这篇文章增加更多实用的内容,谢谢。

  • 「博客原文」,对本文我会【不定时、持续更新、一些 学习心得与文章、实用才是硬道理】^_^.

Write in the last

附上一张图:

iOS·实用工具详解CocoaPods「安装+问题解决+活用」持续更新
一枚 程序员 专用壁纸.png
iOS·实用工具详解CocoaPods「安装+问题解决+活用」持续更新
有报错 ~ 看我干肾-->我又不是【鼓励狮】

About me

温馨提示:【真的不点进去阅读一下 :question:】

更多有关本文系统文件的属性和方法及常用功能代码案例,请移步这里

【白开水ln】:(我) 也是对所花费时间的一个总结

【白开水ln】:(我) 只是个【有思想的伐码猿:monkey:】加上【自己的学习总:coffee:️】写出来的文章。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

趣学Python编程

趣学Python编程

Jason Briggs / 尹哲 / 人民邮电出版社 / 2014-3 / 45.00元

python是一款解释型、面向对象、动态数据类型的高级程序设计语言。python语法简捷而清晰,具有丰富和强大的类库,因而在各种行业中得到广泛的应用。对于初学者来讲,python是一款既容易学又相当有用的编程语言,国内外很多大学开设这款语言课程,将python作为一门编程语言学习。 《趣学python编程》是一本轻松、快速掌握python编程的入门读物。全书分为3部分,共18章。第1部分是第......一起来看看 《趣学Python编程》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具