zoukankan      html  css  js  c++  java
  • iOS 开发:CoCoapods的使用和安装

    CocoaPods的使用和安装

    一、什么是CocoaPods?

    前言: 思考如何引入一个第三方框架。 例如: 百度地图SDK、友盟、ShareSDK、 信鸽推送等。

    1. 从github或某处下载第三方SDK
    2. 工程中导入所需要的SDK的文件 .a 或 .framework
    3. 添加SDK文件所依赖的系统的.framework。比如:
      需要导入SystemConfiguration.framework、CoreLocation.framework、UIKit.framework、libsqlite3. dylib(Xcode 7.0下是tbd文件)等很多系统库。
    4. 有可能还需修改-ObjC、修改Objective-C++
    5. 如果SDK更新了, 我们还需要把这个SDK移除掉, 再拖入一次

    正如上所述,大家如果要使用第三方的SDK,需要重复以上的步骤。如此麻烦又浪费时间, 并且都是重复性的操作,并没有任何营养。因此, 如果想避免上述重复性的操作就可以使用CocoaPods这个工具。

    CocoaPods 是一个第三方库依赖管理工具。使用一行终端命令即可达到引入第三方库的目的。CocoaPods的使用方式非常简单。

    二、CocoaPods安装前准备

    CocoaPods使用Ruby语言编写而成。因此需要Ruby的环境, 庆幸的是OS X已经集成了Ruby环境。我们所需要的做的就是通过gem去安装CocoaPods即可。

    首次安装CocoaPods之前,Ruby默认源在墙外, 因此我们需要修改下Ruby默认使用的源:

    1.查询Ruby的源

    第一步:在终端输入:gem source 

    查询结果如下:

    * CURRENT SOURCES *

    https://rubygems.org/

    查到的这个源是在墙外, 并且淘宝为我们提供了对应的源链接,因此我们需要先移除源链接, 再添加淘宝的源: 

    2.移除Ruby的源

    第二步:终端输入:gem source --remove https://rubygems.org/

    移除结果如下:

    http://rubygems.org/ removed from sources

    3.添加Ruby的源(最近做了修改, 改为了https)

    第三步:在终端输入:gem source -a https://ruby.taobao.org/

    添加结果如下:

    https://ruby.taobao.org/ added to sources

    对源的操作完成后, 就可以安装CocoaPods了。

    三、CocoaPods安装

    运行以下命令, 即可实现CocoaPods的安装

    第四步.在终端输入:sudo gem install cocoapods

    运行之后需要输入电脑的密码, 并且没有密码输入的位数提醒。输完密码就进行安装了,安装过程可能会很慢,耐心等待。

    上述命令安装完成后,输入以下命令, 进行Cocoapods的建立

    第五步:在终端输入:pod setup

    如果上述命令运行, 皆无错误即完成了CocoaPods的安装!

    CocoaPods安装过程中可能遇到的问题

    xcrun找不到Xcode

    xcrun: error: active developer path
    ("/Applications/Xcode.app/Contents/Developer/") does not exist, use xcode-select --switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools (or see man xcode-select)

    运行以下命令, 让xcrun的运行路径找到对应的Xcode

    sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

    另外有一种情况,

    mirror是:~dllo $ pod setup

    setting up cocoapods  master repo 

    出现这种情况时,在终端输入输入以下代码

    pod repo remove master
    pod repo add master http://git.oschina.net/akuandev/Specs.git
    pod repo update

    四、CocoaPods的使用

    1. 在桌面上创建一个需要使用CocoaPods的工程, 并在工程目录下创建Podfile文件

    dllodeMac-mini-390:~ dllo$  cd Desktop

    dllodeMac-mini-390:Desktop dllo$

    2.cd到创建好的工程文件夹中

    在终端输入:touch Podfile   打开桌面的工程文件夹,即可看到白色的Podfile文件

    创建完成如下图中, 会出现Podfile文件


    创建完Podfile
    2.编辑Podfile文件

    右键Podfile,选择其他, 使用Xcode打开


    右键Podfile

    选择Xocde

    打开后, 即可输入你想导入的框架, 我们以AFNetworking为例:

    pod 'AFNetworking'

    3.执行cocoapods的安装操作

    同样也是要在工程目录下
    执行以下命令:

    pod install

    等其执行完毕,即可完成第三方库的安装
    其中还可以调用pod update方法, 也可以达到第三方库安装的目的, 并且会更新版本

    在pod install或者pod update过程中会执行podspec索引的更新,需要等待很久,因此为了提升速度可以执行如下命令, 关掉索引的更新

    pod install --no-repo-update

    并且在安装过程中, 我们不知道cocoapods做了什么, 还可以添加一个参数,用来提示我们,cococapods做了哪些操作

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

    安装完成后, 工程目录下会多出一个白色的文件,如下图:


    通过CocoaPods安装完第三方后

    之后再打开工程,就用白色的工程文件打开,不再使用蓝色的工程文件。

    打开之后,工程的目录层级如下图:


    打开工程后

    其中Pods工程目录是用来存放第三方库和配置文件的,上面的CocoaPods依旧是我们的工程文件, 在它之中,我们可以继续正常的编写代码。
    为了验证是否安装成功, 我们可以在AppDelegate.m中引入我们所要使用的第三方库的头文件,如引入AFNetworking

    #import <AFNetworking.h>

    这里需要注意的是, 以后再引入第三方框架,要当系统框架去引入用#import <框架头文件.h>

    如果我想让引入#import “框架头文件.h” 的引入方式时

    打开Xcode -----target-----在buildSetting下搜索search path  ,在user header search path 中添加 $(PODS_ROOT) 后面选择上recursive

    如果想导入其他的第三方时怎么办呢,接着看:

    4.pod搜索功能

    CocoaPods上的大部分第三方框架均来自于GitHub, 因此数量也很庞大,记名字是很不明智的,因此,我们可以选择通过搜索来找到自己想要寻找的第三方框架SDWebImage 。
    pod search 框架关键字, 如下:

    pod search sdweb

    通过搜索命令, 搜索到的内容如下图:


    搜索结果

    然后把你想要的框架的名字(红色框文字), 复制到Podfile文件中即可,Podfile文件中的第三方可以有多个, 需要几个,就填入几个。

    然后输入到终端去下载和更新

    先输入

    pod install

    然后:再输入pod install --no-repo-update --verbose

    下载完成后引入头文件,就可使用

    至此, 就完成了CocoaPods的创建和使用。

    下一篇会更新关于CococaPods的卸载和更新,敬请期待。 本博客有一些自己的理解,有错误的地方还望指出。

  • 相关阅读:
    紧急情况下测试周期被压缩该如何测试?
    测试人员提高业务掌握度的方案
    Android客户端性能测试(一):使用APT测试Android应用性能
    转载:员工价值——如何体现自己价值,如何被自己的领导认可
    如何提高测试用例复用性和完善测试用例
    如何理解栈(栈的实现方式)
    Android 自动化测试—robotium(七) 使用Junit_report测试报告
    Android 自动化测试—robotium(八) 拖拽
    解决ADT升级报错
    敏捷测试的关键理念
  • 原文地址:https://www.cnblogs.com/XYG-blog/p/5041013.html
Copyright © 2011-2022 走看看