zoukankan      html  css  js  c++  java
  • CocoaPods使用详细说明

    一、概要

    iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods  )可以用来统一管理这些第三方库。

    如果此文章已过时,可以查看 融云 集成文档,有关于cocoaPods的集成说明。点击打开链接

    二、安装
    1、Ruby环境搭建

    当前安装环境为MacBook Air 10.11.4。Mac OS本身自带Ruby,但还是更新一下保险。
    a 查看下当前ruby版本:
    打开终端输入 ruby -v(确实安装了,更新下ruby)

    1. cailianfengdeMacBook-Air:~ manager$ ruby -v
    2. ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
    3. cailianfengdeMacBook-Air:~ manager$

    b 更新ruby

    终端输入:gem update --system  此时可能会出现

    1. ERROR: While executing gem ... (Gem::FilePermissionError) You don‘t have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
    2. zijingMacBook-Pro:~ shiyunlei$ sudo gem update —system

    这个是因为你没有权限去更新Ruby,这个时候你可以在终端使用:sudo gem update --system来进行升级

    本次得到结果是:

    1. cailianfengdeMacBook-Air:~ manager$ gem update --system
    2. Latest version currently installed. Aborting.
    3. cailianfengdeMacBook-Air:~ manager$

    意思是已经是最高版本 如果有报错,可以尝试先更换镜像再执行Ruby更新操作。

    2、下载安装CocoaPods准备(更换镜像)

    安装CocoaPods时我们要访问cocoapods.org,该网站可能被墙了,这样下载安装可能会很慢,我们可以用淘宝的Ruby镜像来访问该网站,方法如下:

    终端输入如下命令(把Ruby镜像指向taobao,避免被墙)

    gem sources --remove https://rubygems.org/ 
    gem sources -a https://ruby.taobao.org/ 
    gem sources -l  (用来检查使用替换镜像位置成功)

    得到结果:

    1. cailianfengdeMacBook-Air:~ manager$ gem sources --remove https://rubygems.org/
    2. https://rubygems.org/ removed from sources
    3. cailianfengdeMacBook-Air:~ manager$ gem sources -a https://ruby.taobao.org/
    4. https://ruby.taobao.org/ added to sources
    5. cailianfengdeMacBook-Air:~ manager$ gem sources -l
    6. *** CURRENT SOURCES ***
    7.  
    8. https://ruby.taobao.org/
    9. cailianfengdeMacBook-Air:~ manager$

    3、下载安装CocoaPods
    终端输入:sudo gem install cocoapods  备注:(苹果系统升级 OS X EL Capitan 后改为 $sudo gem install -n /usr/local/bin cocoapods 此次还是用的前面的,也没有出现问题)

    1. cailianfengdeMacBook-Air:~ manager$ sudo gem install cocoapods
    2. Password:

    输入电脑管理员密码,回车之后就会安装各种successful,最后会得到:

    1. Installing ri documentation for cocoapods-0.39.0
    2. 21 gems installed

    这样就下载安装好了CocoaPods

    执行:pod setup

    会出现Setting up CocoaPods master repo,说明Cocoapods在将它的信息下载到 ~/.cocoapods里;cd到该目录里,用du -sh *命令来查看文件大小,每隔几分钟查看一次,这个目录最终大小是100多M,就是完成了 。(可能会经过漫长的等待)

    4、使用search命令搜索类库名: 
    pod search AFNetworking(也可以pod search UI等,可以查询你想要的)

    如果CocoaPods支持,将会输出搜索到的所有类库版本和信息,以及在Podfile中配置的写法,终端返回信息如下:

    1.  
    2. -> AFNetworking (2.3.1)
    3.  
    4. A delightful iOS and OS X networking framework.
    5.  
    6. (这个语句是需要在编辑Podfile的时候输入的命令,即是如何安装下载相关类库的指令)
    7. pod ‘AFNetworking‘, ‘~> 2.3.1’
    8.  
    9. - Homepage: https://github.com/AFNetworking/AFNetworking
    10.  
    11. - Source: https://github.com/AFNetworking/AFNetworking.git
    12.  
    13. - Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0,
    14.  
    15. 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3,
    16.  
    17. 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1,
    18.  
    19. 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
    20.  
    21. - Sub specs:
    22. - AFNetworking/Serialization (2.3.1)
    23. -AFNetworking/Security (2.3.1)
    24. - AFNetworking/Reachability (2.3.1)
    25. -AFNetworking/NSURLConnection (2.3.1)
    26. - AFNetworking/NSURLSession (2.3.1)
    27. - AFNetworking/UIKit (2.3.1)
    28.  
    29. -> AFNetworking+AutoRetry (0.0.5)
    30.  
    31. Auto Retries for AFNetworking requests
    32.  
    33. pod ‘AFNetworking+AutoRetry‘, ‘~> 0.0.5‘
    34.  
    35. - Homepage: https://github.com/shaioz/AFNetworking-AutoRetry
    36.  
    37. - Source: https://github.com/shaioz/AFNetworking-AutoRetry.git
    38.  
    39. - Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]

    这说明,AFNetworking是支持CocoaPods,所以我们可以利用CocoaPods将AFNetworking导入你的项目中。

    5、需要在工程中创建一个Podfile文件

    使用命令:
    cd /Users/cailianfeng/Desktop/TestCocoapodsDemo (进入工程目录,cd后面的是工程的路径)
    touch Podfile(创建Podfile文件)

    然后使用vim编辑Podfile文件,使用命令:vim Podfile 进入Podfile界面,然后键盘输入 i,进入编辑模式,输入:

    1. platform :ios, '8.0'
    2. target "cocospod" do
    3. pod 'AFNetworking', '~> 2.3.1'
    4. end

    注意:cocospod 为项目名。

    然后按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq,点击回车,保存并退出。

    这是会看到项目中多了一个podfile文件,打开可以看见

    6、执行pod install 命令
    在终端当前目录下输入pod install命令 漫长等待之后,得到结果:

    1. Analyzing dependencies
    2. Downloading dependencies
    3. Installing AFNetworking (2.3.1)
    4. Generating Pods project
    5. Integrating client project
    6.  
    7. [!] From now on use `TestCocoapodsDemo.xcworkspace`.

    然后进入项目,直接用TestCocoapodsDemo.xcworkspace打开项目。这正是你刚刚运行pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。并且你会发现,此时AFNetworking已经在项目的Pods文件夹中了。之后就随意使用了。

    7.说明

    当需要同时导入多个第三方时候 就需要修改Podfile了,就是用vim编辑的那个保存在项目根目录中的文件,修改完了Podfile文件,需要重新执行一次pod install命令。
    例如:
    platform :ios
    pod 'JSONKit', '~> 1.4'
    pod 'AFNetworking', '~> 2.0'

    ...

     

    三、第二场景 如何正确编译运行一个包含CocoPods类库的项目

    有时候好不容易在GitHub上找到一份代码符合自己想需求,下载下来,一编译,发现有各种各样错误。原来是缺失了各种其他第三方类库。这时如果会发现你下载的代码包含了Podfile。意味着你可以用CocoaPods很方便下载所需要的类库。

    下载的项目中通常有三个跟CocosPods相关的文件(文件夹):Podfile,Podfile.lock和Pods。

    打开终端,cd路径进入下载的项目所在的目录,也就是和Podfile在同一目录下(由于已经有Podfile,所以不需要再创建Podfile),输入以下命令:
    pod update
    过几秒(也许需要十几秒,取决于你的网络状况)之后,终端出现:

    1. Analyzing dependencies
    2. Fetching podspec for `XXXXXXXX` from `../`
    3. Downloading dependencies
    4. Installing XXXXXXXXXXXXX (0.1.6)
    5. Generating Pods project
    6. Integrating client project
    7.  
    8. [!] From now on use `XXXXXXXXXX.xcworkspace`.

    这时候,打开项目文件夹看一看,会看到多了一个文件XXXXXXXXXX.xcworkspace;根据终端的信息提示,你以后就需用新产生的XXXXXXXXXX.xcworkspace来运行这个代码了。

    注意,这里有个小问题,如果刚刚不是输入pod update,而是输入pod install,会发现类库导入不成功,并且终端出现下面提示:

    1. [!] Required version (XXXXXXXXXX (from `../`)) not found for `XXXXXXXXXXXX`.
    2. Available versions: 0.1.6

    这里的意思大概是Podfile文件过期,类库有升级,但是Podfile没有更改 pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败,但是pod update会更新所有的类库,获取最新版本的类库。而且你会发现,如果用了pod update,再用pod install 就成功了;其实每次直接用 pod update 也可以。或者先用 pod install,如果不行,再用pod update。

  • 相关阅读:
    【转】java内存溢出的场景及解决办法
    系统架构
    【转】Linux tar命令详解
    【转】Java 开发必会的 Linux 命令
    【转】ps命令详解与使用
    【转】Linux命令:ps -ef |grep java
    linux grep命令详解
    【springcloud】Zuul 超时、重试、并发参数设置
    【springcloud】常见面试题总结
    php的函数应用
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/9256900.html
Copyright © 2011-2022 走看看