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. PowerManager和PowerManager.WakeLock详解

    最近在做项目过程中,有一个LocalPush的需求,需要保持屏幕点亮一段时间,并且在这个时间里,启动Service来执行请求服务器的操作,拿到热点的数据.所以,就找了一下相关的android开源项目. ...

  2. NetBeans部署项目(Extjs)报错(一)

    NetBeans部署项目(Extjs)报错(一) 1.用NetBeans将项目部署到Tomcat中,报错. 具体如下: ant -f D:\\NetBeans\\workspace\\Foundati ...

  3. GStreamer 简化 Linux 多媒体开发

    Streamer 是 GNOME 桌面环境下用来构建流媒体应用的开源多媒体框架(framework),其目标是要简化音/视频应用程序的开发,目前已经能够被用来处理像 MP3.Ogg.MPEG1.MPE ...

  4. WPF基础篇之资源文件路径

    WPF资源文件的路径 关于WPF资源文件的路径 这几天在WPF中调用资源文件的Uri时,因为是在代码里调用Uri写的Uri总是不对,要么运行直接报异常,要么说找不到资源文件.下面是我解决的整个经过和碰 ...

  5. BitMap位图与海量数据的理解

    1. Bit Map算法简介 来自于<编程珠玑>.所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素.由于采用了Bit为单位来存储数据,因此在存储空 ...

  6. Python基础__字典、集合、运算符

    之前讨论的字符串.列表.元组都是有序对象,本节则重点讨论无序对象:字典与集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系.例如L=['I' ...

  7. layer与iframe 间值的相互传递

    在A页添加 <input id="handle_status" value="" hidden="hidden"> jq代码 l ...

  8. 【CJOJ1644】【洛谷2758】编辑距离

    题面 题目描述 设A和B是两个字符串.我们要用最少的字符操作次数,将字符串A转换为字符串B.这里所说的字符操作共有三种: 1.删除一个字符: 2.插入一个字符: 3.将一个字符改为另一个字符: 皆为小 ...

  9. Bzoj3160:万径人踪灭

    题面 Bzoj Sol 求不连续回文子序列的个数 \(ans=\)回文子序列个数-连续回文子序列个数 即回文子序列个数-回文子串个数 后面直接\(Manacher\)就好了 考虑前面的 枚举对称轴,设 ...

  10. [HNOI2008]水平可见直线

    按斜率排序后画个图,用单调栈维护这个半平面交 # include <bits/stdc++.h> # define IL inline # define RG register # def ...