CocoaPods学习

作者: SunshineBrother | 来源:发表于2017-12-15 14:12 被阅读41次

网上有很多介绍CocoaPods的文章,最近感觉因为只是会简单的使用,有点不符合我们程序员的性格,所以准备仔细了解一下,有错误的地方请及时提出

开篇我首先先来简单的讲解一下CocoaPods的运行过程
  • 1、第一步我们一般会先把rubygems源换成taobao源,因为这个时候我们需要下载CocoaPods的一些环境,使用国内源下载的速度会比较快一些。但是现在淘宝源不更新了,替换成这个https://gems.ruby-china.org/

  • 2、我们查看CocoaPods里面的文件夹,我们可以看到,里面并没有我们需要的各种第三方库,但是有他的源码地址,当我们需要倒入一些第三方的时候,CocoaPods会查找文件中我们需要的那个第三方源码的github地址,然后配置相关环境

  • 3、我们使用CocoaPods命令行的时候,其实每一个命令行都是执行的一个ruby方法

  • 4、当我们执行pod install的时候,我们会从CocoaPods本地文件夹中找到第三方源码github地址,然后下载,这个时候下载的地址默认是'https://github.com/CocoaPods/Specs.git',但是这个下载的时候还是有一点慢,从我们平时打开github时的速度我们就可以知道,这个时候我们还可以尽心一次换源,'https://code.aliyun.com/Magi/CocoaPods.git',换成阿里的源。这时下载的速度会比较快一点。说一个比较简单的换源方法吧,直接在文件夹中修改,~/.cocoapods/repos/master/.git/config里设置url = https://code.aliyun.com/Magi/CocoaPods.git

    • 1、打开finder,然后command + Shift + ⬆️键
    • 2、显示隐藏文件夹command + Shift + . 这里有一个实心句号
    • 3、点击用户 - >自己的家目录🏠 - >隐藏文件cocoapods ->repos->master - > git文件 - >config,双击打开,修改url
      -4、【注意⚠️】因为CocoaPods默认下载地址是'https://github.com/CocoaPods/Specs.git',我们在每一次使用的时候,都需要把我们项目中的Podfilesource换成'https://code.aliyun.com/Magi/CocoaPods.git',如果你使用pod install命令行报错[!] Unable to add a source with url https://code.aliyun.com/Magi/CocoaPods.git namedaliyun-magi-cocoapods. You can try adding it manually in~/.cocoapods/reposor viapod repo add.这个时候就是因为你使用了默认的源,可以重复上一步更改成阿里源

CocoaPods 的安装 使用 升级

CocoaPods应该是iOS最常用最有名的类库管理工具了,CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 iOS 开发事实上的依赖管理标准工具。

CocoaPods的好处
  • 1、在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等。
  • 2、使用CocoaPods可以很方便地查找新的第三方库,这些类库是比较“标准的”,而不是网上随便找到的,这样可以让我们找到真正好用的类库。
安装

安装方式异常简单 , Mac 下都自带 ruby,使用 ruby 的 gem 命令即可下载安装

$ sudo gem install cocoapods
$ pod setup   

如果你的 gem 太老,可能也会有问题,可以尝试用如下命令升级 gem:

sudo gem update --system

另外,ruby 的软件源https://rubygems.org 因为使用的是亚马逊的云服务,所以被墙了,需要更新一下 ruby 的源,使用如下代码将官方的 ruby 源替换成国内淘宝的源

gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.org/
gem sources -l

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

安装具体步骤
  • 1、升级Ruby环境$ gem update --system

  • 2、更换Ruby镜像

    • 2.1 、首先移除现有的Ruby镜像$ gem sources --remove https://rubygems.org/
    • 2.2、 添加国内最新镜像源(淘宝的Ruby镜像已经不更新了)$ gem sources -a https://gems.ruby-china.org/
    • 2.3、查看当前镜像gem sources -l
  • 3、安装CocoaPods sudo gem install cocoapods,这个时候用的时间会比较长,因为需要把几十万个文件给下载下来,不信的话可以自己查看文件,查看步骤

    • 1、打开finder,然后command + Shift + ⬆️键

      965018CD-D345-4837-91F2-BF2D5C727B89.png
    • 2、显示隐藏文件夹command + Shift + . 这里有一个实心句号

      26DD0712-F583-4061-B066-13AF9B3DE797.png

我们可以在这里面查看有多少个文件夹

利用shadowsocks的socks5代理,配置好后明显加速。用下面两条命令配置好后,保持shadowsocks客户端开启就行了

//shadowsocks的本地端口默认是1080
git config --global http.proxy 'socks5://127.0.0.1:1080' 
git config --global https.proxy 'socks5://127.0.0.1:1080'

然后用下面这种直接clone的方式能够看到进度

cd ~/.cocoapods/repos
git clone https://github.com/CocoaPods/Specs.git
这里有一篇文章写的也是比较详细的,大家可以参考一下iOS安装CocoaPods详细过程

1、Ruby环境

Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言,是一种脚本语言,我们执行的CocoaPods的各种命令,其实就是执行Ruby的脚本语言

CocoaPods,在每一个工程使用 CocoaPods 的工程中都有一个 Podfile:

source 'https://github.com/CocoaPods/Specs.git'
target 'Demo' do
pod 'SDWebImage'
end

因为这里的 source、platform、target 以及 pod 都是方法,都是在执行Ruby脚本,转化成Ruby脚本代码是

# eval_pod.rb
$hash_value = {}

def source(url)
end

def target(target)
end

def platform(platform, version)
end

def pod(pod)
end

我们执行的各种CocoaPods命令,都是在执行的Ruby脚本

我们在执行pod install的过程就是Ruby脚本Podfile 的内容 转化成一个 Podfile 类的实例的过程

  • 1、解析 Podfile 中的依赖
  • 2、下载依赖
  • 3、创建 Pods.xcodeproj 工程
  • 4、集成 workspace

参考:CocoaPods 都做了什么?

解释一些概念

  • 1、gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem源来查找、安装、升级和卸载软件包,非常的便捷。我们平时就是切换各种gem来加快我们的下载速度

  • 2、Podfile是一个文件,用于定义项目所需要使用的第三方库。该文件支持高度定制,你可以根据个人喜好对其做出定制

  • 3、.podspec 。也是一个文件,该文件描述了一个库是怎样被添加到工程中的它支持的功能有:列出源文件,框架,编译选项和某个库所需要的依赖等。

  • 4、CocoaPods / Xcodeproj
    这个gem组件负责所有工程文件的整合。它能够对创建并修改.xcodeproj和.xcworkspace文件。它也可以作为单独的一个gem包使用。如果你想要写一个脚本来方便的修改工程文件,那么可以使用这个gem。

  • 5、Podfile.lock
    这是CocoaPods创建的最重要的文件之一。它记录了需要被安装的pod的每个已安装的版本。如果你想知道已安装的pod是哪个版本,可以查看这个文件。推荐将Podfile.lock文件加入到版本控制中,这有助于整个团队的一致性

相关文章

  • CocoaPods 学习

    [TOC] 项目组成 CocoaPods is composed of the following project...

  • CocoaPods学习

    网上有很多介绍CocoaPods的文章,最近感觉因为只是会简单的使用,有点不符合我们程序员的性格,所以准备仔细了解...

  • cocoapods学习

    cocoapods学习 为什么使用cocoapods? pods库依赖的其他动态,静态库全自动导入 编译参数自动设...

  • 学习cocoapods

    请原谅我还不怎么会用markdown语法。。。cocoapods是ruby写的,还好Mac自带Ruby环境。让我们...

  • cocoapods学习

    https://blog.csdn.net/u014600626/article/details/10292256...

  • CocoaPods学习03-pod install vs pod

    CocoaPods学习01-PodfileCocoaPods学习02-PodSpecCocoaPods学习04-制...

  • CocoaPods学习04-制作自己的pod库

    CocoaPods学习01-PodfileCocoaPods学习02-PodSpecCocoaPods学习03-p...

  • cocoapod学习

    学习CocoaPods [TOC] 1. 概述 此片文章主要介绍Cocoapods的一些基本命令、Podfile文...

  • CocoaPods学习01-Podfile

    CocoaPods学习02-PodSpecCocoaPods学习03-pod install vs pod upd...

  • CocoaPods学习02-PodSpec

    CocoaPods学习01-PodfileCocoaPods学习03-pod install vs pod upd...

网友评论

    本文标题:CocoaPods学习

    本文链接:https://www.haomeiwen.com/subject/qeliixtx.html