CocoPods简介

  1. CocoaPods是一个用Ruby写的,负责管理iOS以及OSX系统下的一个第三方类库管理工具,通过CocoaPods,我们可以集中,统一的管理第三方开源库。当然这些库徐亚CocoaPods本身支持。
  2. 在引入第三方库时,它可以自动为我们完成各种配置,包括响应系统以来,配置编译阶段,链接器选项,甚至是ARC环境下的-fno-objc-arc配置等等

编译环境

系统版本:macOS Sierra 10.12.6

Xcode: v9.2(9C40b)

CocoaPods安装

貌似只能使用终端命令行

1.升级Ruby环境

$ sudo gem update --system

上面这个方法在CocoaPods 1.0之后应该是不行了,有可能会出现以下错误

Operation not permitted - /usr/bin/update_rubygems

stackoverflow.com中找到了答案

$ sudo gem update -n /usr/local/bin --system

注意

其实在命令行中系统就提示了解决办法 /usr/bin/update_rubygems

2.更换Ruby镜像

首先 先移除现有的Ruby原生的镜像

$ gem sources --remove https://rubygems.org/

再添加国内的镜像源

$ gem sources -a https://gems.ruby-china.org/

注意

国内淘宝的镜像源已经不更新了

更新完毕之后通过命令行来查看当前的镜像源

$ gem sources -l

成功则显示如下

失败则重复执行 $ gem sources -a https://gems.ruby-china.org/

3.安装CocoaPods

提示

在Mac OSX 10.9 CocoaPods 还在0.9 时期 安装CocoaPods 的命令是 $ sudo gem install cocoapods

在Mac OSX 10.10之后 CocoaPods 已经升级到了1.0.0 命令已经变更为 $ sudo gem install -n /usr/local/bin cocoapods

执行命令

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

成功则出现如图所示

执行命令

$ pod setup

这时会出现 Setting up CocoaPods master repo 需要等待一段时间

4.使用CocoaPods

使用命令查看pod的版本号

$ pod --version

控制台输出 1.4.0

说明已经成功安装了CocoaPods

接下来需要 cd 到你的工程中

$ cd /Users/maybe/Desktop/testCocoaPods

我新建了一个项目 项目名为 testCocoaPods

touch podFile通过vim命令在工程中创建一个podFile文件

open podFile 通过vim命令打开该文件

配置好podFile文件,保存。

pod install 通过该命令下载

vim中表示已经下载完成,可以关闭当前Xcode项目,使用testCocoaPods.xcworkspace

在这里 已经可以正常的使用CocoaPods了

5.CocoaPods一些异常处理

1. 搜索不到最新的第三方库版本

解决办法

  1. 通过命令行升级你本地的repo
$ pod repo update

如果更新不下来,或者更新下来还是没有你需要的版本,就可以尝试升级pod版本。

1.3.1 升级 1.4.0 的时候我就发现有这个问题,直接更新repo不行,需要更新pod版本才能搜到最新版本的第三方库

这时候按照上面的方法执行下去,重新安装一遍 pod 就可以,注意查看下pod版本时候是否有更新。

有时候可能更新下来还是搜索不到,可以尝试使用命令来处理下

rm ~/Library/Caches/CocoaPods/search_index.json

来删除索引

成功删除缓存文件,终端是没有提示的,Unix的尿性就是没有提示就是成功意思。

这时重新发起搜索

Creating search index for spec repo 'master'..

需要等待一会,正在重新建立索引

稍微等待几分钟就可以重新搜索到。

2.卸载CocoaPods

卸载命令

 $ sudo gem uninstall cocoapods

可进入文件夹中查看repo

 $ cd ~/.cocoapods

卸载完成后,这个文件夹会被清空

3 [!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down

当我们使用pod update 或者 pod repo update 时,可能会出现 [!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down问题

一开始我认为是网络问题,后来频繁的出现我发现是链接github出现了问题。

stackoverflow 我找到了解决办法。

在这里可以看到出现这个问题的原因,以及解决的办法

2018年2月之后,其中一个主要问题是“弱密码标准被删除”。

To solve this, first you need to update openssl, then ruby, then cocoapod.

开始搬运代码

$ which openssl
/usr/bin/openssl $ openssl version
OpenSSL 0.9.8zh 14 Jan 2016 $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ brew update $ brew install openssl $ brew upgrade openssl `` If you need to have this software first in your PATH run: echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile $ echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile $ which openssl
/usr/local/opt/openssl/bin/openssl $ openssl version
OpenSSL 1.0.2n 7 Dec 2017 $ brew install rbenv ruby-build $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
$ source ~/.bash_profile $ rbenv install --list Available versions:
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
1.8.6
:
2.5.0-rc1
2.5.0
2.6.0-dev
: $ rbenv install 2.5.0 $ rbenv versions
* system (set by /Users/username/.rbenv/version)
2.5.0 $ ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] $ rbenv global 2.5.0 $ rbenv versions
system
* 2.5.0 (set by /Users/username/.rbenv/version) $ ruby --version
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin16] $ gem install cocoapods -n /usr/local/bin $ which pod
/usr/local/bin/pod $ pod --version
1.4.0

成功走到最后,则代表安装成功了,可以放心的 pod updatepod repo update

Ruby选择的版本必须是大于2.0.0版本,最好是选择最新的例如 2.5.0 或者 2.5.1

在 2018.4.24你pod可能更新的是1.5.0版本,这个关系不大

还有一种解决方案 是每次需要更新你的repo时,将老版本的repo删除,重新下载

$sudo rm -fr ~/.cocoapods/repos/master
$pod setup
$pod install

6. 快速添加第三方库

在使用CocoaPods添加第三方库类库时,无论是执行``` pod install 还是 pod update 时,经常会卡在Analyzing dependencies,这是因为在更新本地 pod spec文件导致的。通过no-repo-update标志可以不更新本地 pod spec``索引。

注意:第一次创建CocoaPods时不能使用,需要更新本地repo时不能使用

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

打印详细日志

pod update -verbose

iOS 10.10 10.11 10.12 安装升级CocoPods的更多相关文章

  1. VMware Workstation 11 安装MAC OS X 10.10 Yosemite(14B25)图解 2015-01-13 12:26:01|

    VMware Workstation 11 安装MAC OS X 10.10 Yosemite(14B25)图解 2015-01-13 12:26:01|  分类: 网络互联 |  标签:10.10  ...

  2. VMware 12安装Mac OS X 10.11&解决上网的问题

    近日想在Win10上安装Mac OS 玩玩,于是上网搜了相关资源,查看了相关经验分享,开始着手安装.系统很快成功安装,但最大问题是虚拟机中的Mac OS无法上网.费了很长时间,最终看到Ping通结果, ...

  3. Ubuntu 11.10下GRUB 2 1.99版编译安装笔记

    Ubuntu 11.10下GRUB 2 1.99版编译安装笔记 以下的安装笔记,都是QLi自己学习grub2 时,所整理的,还是新手,有错误的话,请大家帮忙就别提出来了. 最新版grub V1.99官 ...

  4. 安装教程-VMware 12 安装 Windows 10 企业版

    VMware 12 安装 Windows 10 企业版 1.实验描述 在虚拟机中,手动安装 Windows10 企业版操作系统,为一些实验提供平台,因此,有关系统激活问题不再演示.可自行百度,或者加入 ...

  5. 升级10.11.6后CocoaPods的坑,之前10.11.4已经安装好的,居然没了Failed to locate Homebrew!

    升级10.11.6后CocoaPods的坑,之前10.11.4已经安装好的,居然没了,用命令 sudo gem install cocoapod 装不上,换 sudo gem install -n/u ...

  6. [团队项目]第二个冲刺 看板和燃尽图 Sprint2 6.8/6.9/6.10/6.11/6.12/6.13/6.14

    1.开始一个新的冲刺: 起止:2016.6.1~2016.6.14 按照以下过程进行 ProductBacklog:继续向下细化 Sprint 计划会议:确定此次冲刺要完成的目标 Sprint Bac ...

  7. ubuntu 11.10 安装apache2 tomcat6

    ubuntu 11.10 安装apache2 tomcat6 导读 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目 ...

  8. OSX 10.10+Xcode5.1 无法启动或者安装应用程序到iOS 6.1 simulator

    错误症状: OSX 10.10+Xcode5.1 无法启动或者安装应用程序到iOS 6.1 simulator 错误原因: iOS Simulator 内核要使用OSX 系统内核,所以iOS Simu ...

  9. Ubuntu 11.10 安装GMONE3,卸载 UNITY和UNITY 2D

    Ubuntu 11.10安装GNOME3: 1)sudo apt-get install gnome-shell    sudo apt-get install gnome-themes*   (或者 ...

随机推荐

  1. Java Web项目(Extjs)报错五

    1. Java Web项目(Extjs)报错五 具体报错如下: usage: java org.apache.catalina.startup.Catalina [ -config {pathname ...

  2. Linux显示检查设置文件中的语法是否正确

    Linux显示检查设置文件中的语法是否正确 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ apachectl [conflgtest] 程序"apa ...

  3. Java和Flex整合报错(五)

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  4. Python与Mongodb交互

    MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案 MongoDB 将数据存储为一个文档,数据结构由键值 ...

  5. 对spring web启动时IOC源码研究(二)

    发现这样debug到哪说到哪好像有点回不来了~让我重新理下思路,主要步骤先上图,有什么不同意见欢迎批评教育~ (一)spring IOC的主要步骤都在refresh()这个方法中,我给出了自己的理解注 ...

  6. Blending, Bootstrap

    听林轩田老师的<机器学习技法>,Lecture 7讲到model的blending. 理解了一个之前一直模棱两可的概念:bootstrap. 先说一下什么是blending.在机器学习中, ...

  7. springtest-junit-jidi--测试接口

    一,问题分析 假如在一个项目中要测试一个接口,但是这个项目没有对外开放url地址,话句话就是说浏览器访问不了里面的资源,自己造的数据不能测试接口,那么只能等别人来调用自己的接口,而且自己也不能测试,假 ...

  8. ajax页面跳转(后台返回的是一个url地址,或者自己传进去的是url地址)

    function modifyMerchantInfo(merchant_code) { $.ajax({ url: '/intra/crm/merchant/OrderMgr.htm?method= ...

  9. 使用Restify+superagent做数据转发

    最近为了解决跨域问题,做了一个Node数据转发服务器,使用到了Restify和superagent. Restify 是nodejs的模块.虽然restify的API或多或少的参考了express,但 ...

  10. 在实训时做的项目出现的ajax json数据传送的问题

    json数据在前后端数据交互的时候非常常见,但是大部分人对json都么有系统的学习过,所以就会出现一些很简单的问题却要非很大劲去解决. 在用json传递数据的时候属性必须用双引号括住,一般如果在进行字 ...