基础-简介

作者: coderPoo | 来源:发表于2018-09-04 17:00 被阅读13次

1. CocoaPods简介

CocoaPods是一个用来帮助我们管理iOS第三方依赖库的工具。它可以解决库与库之间的依赖关系,目的是让我们能自动化的、集中的、直观的管理第三方开源库。

CocoaPods的安装和使用

CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。幸运的是OS X系统默认的已经可以运行Ruby了,因此我们只需要执行以下命令:

$ sudo gem install cocoapods
$ pod setup 

① 执行完install命令半天没反应

原因是Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,请替换成Ruby China的源,命令如下:

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

要想验证是否替换成功了,可以执行:

$ gem sources -l 

正常的输出是:

*** CURRENT SOURCES *** 
https://gems.ruby-china.org/

② gem版本过老

gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可:

$ sudo gem update --system 

③ pod setup等待时间太久

pod setup在执行时,CocoaPods会将托管在https://github.com/CocoaPods/Specs上面的所有项目的Podspec文件更新到~/.cocoapods/目录下,这个文件很大,所有第一次更新会非常慢。方法是直接手动下载到本地,操作如下:

$ git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master --progress

使用

<span id = "jump"></span>

创建Podfile文件

在Xcode项目的根目录下执行命令创建Podfile文件,操作如下:

$ pod init

Podfile文件的格式如下:

source 'https://github.com/CocoaPods/Specs'  #源的下载地址

platform :ios, '7.0'                         #支持的ios系统最低版本

pod 'JSONKit', '~> 1.4'                      #第三方库以及版本号

target 'XBPodSDK' do                         #项目的target
    # use_frameworks!
end

上面的格式比较简单,查看更多详情,请跳转到链接Podfile介绍

<font color=red>注意:Podfile文件中加入“use_frameworks!”表示打包成framework动态库(ios8之前是静态库),如果没有这个配置,则最终打包成.a静态库</font>

安装依赖库

Podfile文件创建完成后,在当前的工程目录下,执行命令来安装依赖库:

$ pod install

<font color=red>注意:使用CocoaPods生成的.xcworkspace文件来打开工程</font>

更新依赖库

当依赖的第三方库升级新版本后,如果Podfile文件指定库为最新版本或者不指定版本,都会更新到最新版。

① 全部更新

如果要使Podfile文件中所有的库都更新到指定版本,需要执行命令如下:

$ pod update

<font color=red>注意:用“~>”指定的版本是一个范围,并不是特定版本,所有会产生误解(自己指定了版本,为什么pod update会更新到更高的版本)。为了防止这种情况,可以使用“<=”来指定版本。</font>

直接执行pod update命令,有时会比较慢,这是因为pod会更新本地的版本库,添加参数可以取消更新版本库,如下:

$ pod update --no-repo-update

<font color=red>注意:这种情况需要保证本地版本库最新。</font>

② 更新指定库

如果想只更新某个依赖库,可以在pod update后面加上库名,如下:

$ pod update [LIB_NAME] #库的名称

查找第三方库

如果不知道cocoaPods管理的库中,是否有想要的库,可以通过<font color=red>pod search</font>命令进行查找,以下是用<font color=red>pod search json</font>查找到的所有可用的库:

-> JSON (5.0.0)
   JSON made so simple, it hurts
   pod 'JSON', '~> 5.0.0'
   - Homepage: https://github.com/3lvis/JSON
   - Source:   https://github.com/3lvis/JSON.git
   - Versions: 5.0.0, 5.0.0-beta1, 4.0.2, 4.0.1, 4.0.0, 3.1.0, 3.0.0, 2.1.1, 2.1.0, 2.0.0 [master repo]

-> json-parser-swift (0.2.0)
   JSON parser & tokenizer in pure Swift
   pod 'json-parser-swift', '~> 0.2.0'
   - Homepage: https://github.com/webconnex/json-parser-swift
   - Source:   https://github.com/webconnex/json-parser-swift.git
   - Versions: 0.2.0, 0.1.1, 0.1.0, 0.0.2, 0.0.1 [master repo]
   
//... 以下省略若干行

Podfile.lock作用

在开始使用CocoaPods,执行完pod install之后,会生成一个Podfile.lock文件,每次执行pod update也会更新Podfile.lock文件。

作用

Podfile.lock文件最大得用处在于多人开发,保证团队中每个人使用的依赖库的版本一致

CocoaPods管理私有库

创建私有 Spec Repo

Spec Repo介绍

Spec Repo是所有的Pods的一个索引,就是一个容器,所有公开的Pods都在这个里面,它实际是一个远端的Git仓库,当你使用了Cocoapods后它会被clone到本地的~/.cocoapods/repos目录下,可以进入到这个目录看到master文件夹就是这个官方的Spec Repo了。这个master目录的结构是这个样子的

.
├── Specs
    └── [SPEC_NAME]
        └── [VERSION]
            └── [SPEC_NAME].podspec

相关文章

  • 基础-简介

    1. CocoaPods简介 CocoaPods是一个用来帮助我们管理iOS第三方依赖库的工具。它可以解决库与库之...

  • 基础简介

    Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,需要清除旧进程来回收内存。为了确...

  • UIButton

    目录:1、UIButton基础简介2、UIButton事件 1、UIButton基础简介 2、UIButton事件...

  • UILabel简介

    UILabel基础简介

  • 人工智能技术文章list

    理论基础部分: 人工智能基数算法简介 人工智能基础算法简介2 人工智能基础算法总结 TensorFlow 入门 T...

  • JMeter:基础_简介

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设...

  • Java基础简介

    Java是一门面向对象的程序设计语言,1995年由Sun公司发布,2010年被Oracle公司收购。 JVM(Ja...

  • Javascript基础简介

    1.javascript: 行内样式 ;内嵌样式 ;外链样式 2.使用javascript来输出一句话: 方式1...

  • python 基础 - 简介

    python 简介 前言 一种面向对象的解释型计算机程序设计语言 解释类:解释器通过解释器来翻译,类似于同声传译人...

  • 网络基础简介

    TCP/IP: 是以TCOP和IP为基础的不同层次商多个协议的集合 TCP:Transmission Contro...

网友评论

    本文标题:基础-简介

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