参考文章

git address

一、简介:CocoaPods是一个负责管理 iOS项目中第三方开源代码的工具。

二、安装与更新

  1、安装

$ sudo gem install cocoapods
$ pod setup // cocoaPods 将信息下载到 ~/.cocoaPods 目录下

  2、更新

$ sudo gem update cocoapod

  // 如果出现下载很慢,可以到 github 上下载 cocoapods,解压后文件夹重命名为 master,并拷贝到 ~/.cocoapods 目录下。

  3、安装或更新过程发生连接错误

    需要改变 RubyGems 的源地址为 "https://gems.ruby-china.org/",源地址介绍文章

    3.1、更新 Ruby 版本,建议 2.6.x 以上

# 第一步
$ sudo gem update --system # 这里请翻墙一下,如果执行这步已经发生连接错误的话,可先执行 "gem sources --add https://gems.ruby-china.org/ --remove https://ruby.taobao.org/" 替换掉源 #第二步
$ gem -v

    在第一步执行的时候发生了错误,

    解决方法,第一步指令替换成

$ sudo gem update -n /usr/local/bin --system

  3.2、替换掉 Ruby 源

$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
$ gem sources -l # 确保只有 gems.ruby-china.org

  3.3、执行 "sudo gem install cocoapods" 发生错误

  解决方法,指令改为

$ sudo gem install -n /usr/local/bin cocoapods

  

三、运用到现有的项目中使用

  a) 新建一个名为 Podfile 的文件,以如下格式,将依赖的库名字依次列在文件中即可。(可以使用 “$ pod search xxxxx” 来查看 library 的信息。)

platform :ios, '5.0'

target "XXXX-ProjectTargetName" do
pod 'Reachability', '~> 3.1.1'
pod 'ASIHTTPRequest', '~> 1.8.1'
end

  

对于多个 project,多个 target 的时候

platform :ios, '7.0'

target "Library1" do

pod 'FMDB', '~> 2.3'
pod 'SSZipArchive', '~> 0.3.2' end target "Library2" do pod 'FMDB', '~> 2.3'
pod 'SSZipArchive', '~> 0.3.2' end

或者

platform :ios, '7.0'

pod 'FMDB', '~> 2.3'
pod 'SSZipArchive', '~> 0.3.2' link_with 'Library', 'Library2'

 

    保存时候格式需要注意,取消 checkbox 的钩。

  b) 将刚才编辑好德 Podfile 文件放到项目的根目录下,并在 Terminal 执行

$ cd Project Root Path
$ pod install

  

  如果 Profile 的编辑没有格式错误,即可见到以下输出,表明在 Podfile 声明的第三方 library 已经下载并且配置好了编译参数和依赖。

Analyzing dependencies
Downloading dependencies
Installing ASIHTTPRequest (1.8.)
Installing Reachability (3.1.)
Generating Pods project
Integrating client project [!] From now on use `Test.xcworkspace`.
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.

  cocoaPods 会在根目录下生成以下文件:

    "Podfile.lock" 文件

    "Pods" 文件夹

    "xxx.xcworkspace"

  注意:

    • 以后请通过 xxx.xcworkspace 来打开工程
    • 每次更改过 Podfile 文件,请重新执行 “pod install”
    • 用 git 做版本控制的时候,不要把 Podfile.lock 放到 .gitignore 中。(原因 Podfile.lock 会锁定当前所需第三方 library 的版本,之后如果多次执行 "pod install" 不会更改版本,只有执行 "pod update" 才会更改 Podfile.lock。)

 使用的时候用

 #import <ASIHTTPRequest/ASIHTTPRequest.h>

4、terminal 中常用命令

  查找框架: pod search xxx

  第三方库更新: 打开Podfile配置文件,添加或删除配置文件中的第三方库引用,保存退出之后,再运行:pod update 或者 pod install

5、总结原理:

  cocoaPods 将所有的依赖库都放到另一个名为Pods项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。发现的一些技术细节有:

  1. Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
  2. 对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
  3. CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数。

CocoaPods 学习的更多相关文章

  1. CocoaPods学习系列5——错误集锦

    这篇文章记录使用CocoaPods过程中遇到的一些错误. 1.error:include of non-modular header inside framework module 在自定义类库中,引 ...

  2. CocoaPods学习系列4——进阶用法

    这篇文章,记录一下CocoaPods的进阶用法. 进阶用法主要体现在.podspec文件和Podfile的配置上. .podspec文件的进阶配置 以官方的一个.podspec文件示例细说: Pod: ...

  3. CocoaPods学习系列3——创建和使用私有Pods

    前一篇记录了使自己的项目支持CocoaPods管理的过程,核心的步骤就是podspec的配置和提交.这个文件,记录了类库的详细信息,用于对类库的集成. 需要注意的一点,上一篇创建的podspec文件, ...

  4. CocoaPods学习系列2——使自己的项目支持CocoaPods管理

    该篇记录使自己的项目支持CocoaPods管理. 要达到这一目的,需要如下步骤: 1.将自己的项目提交到github,添加开源协议license 2.添加podspec文件 3.验证podspec,成 ...

  5. CocoaPods学习系列1——安装和常规使用

    CocoaPods是一个Github上的开源项目,目前已经成为iOS开发过程中标准的依赖库管理器,提供了一种对第三方类库简单优雅的集成和管理方案. 其工作原理,是将第三方类库统一管理到一个名为Pods ...

  6. cocoapods学习

    1.安装 http://stackoverflow.com/questions/16459028/rvm-install-error-running-requirements-osx-port-ins ...

  7. 从零开始学习CocoaPods安装和使用

    从零开始学习CocoaPods安装和使用   转载: Code4App原创:http://code4app.com/article/cocoapods-install-usage http://m.i ...

  8. 推荐学习使用cocoapods和phoneGap安装的链接

    phoneGap安装:http://blog.csdn.net/cwb1128/article/details/18019751 cocoaPods使用:http://blog.csdn.net/wz ...

  9. iOS学习之cocoaPods

    Cocoapods Cocoapods作用:iOS开发时,项目中会引用许多第三方库,CocoaPods可以用来方便的统一管理这些第三方库. 第一步安装: 下载安装CocoaPods需要Ruby环境 M ...

随机推荐

  1. Codeforces 676C Vasya and String(尺取法)

    题目大概说给一个由a和b组成的字符串,最多能改变其中的k个字符,问通过改变能得到的最长连续且相同的字符串是多长. 用尺取法,改变成a和改变成b分别做一次:双指针i和j,j不停++,然后如果遇到需要改变 ...

  2. ccc 设置图片位置

    cc.Class({ extends: cc.Component, properties: { player:{ default:null, type:cc.Sprite } }, // use th ...

  3. HDU 3078 (LCA+树链第K大)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3078 题目大意:定点修改.查询树中任意一条树链上,第K大值. 解题思路: 先用离线Tarjan把每个 ...

  4. Leetcode Add Binary

    Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...

  5. 爬虫_Crawler4j的使用

    Crawler4j的使用 (以下内容全部为转载,供自己查阅用) 下载地址: http://code.google.com/p/crawler4j/ Crawler4j的使用 网上对于crawler4j ...

  6. Windows环境下的NodeJS+NPM+Bower安装配置步骤

    Windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要登陆官网(http://nodejs.org/),便可以看到首页的“INSTALL”按钮 ...

  7. Linux 的cp命令

    Linux 的cp命令 功能: 复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若 ...

  8. 李洪强经典面试题136-KVO-KVC

    李洪强经典面试题136-KVO-KVC   KVC-KVO KVC的底层实现? 当一个对象调用setValue方法时,方法内部会做以下操作: ①检查是否存在相应key的set方法,如果存在,就调用se ...

  9. 练习一:SQLite基本操作

    一.基础知识: 运用场景: 1>应用运行需要保存一系列有一定关系有一定结构的数据(文本也可以但是存储效率低) 2>文件类型:.db(一个数据库就是一个.db文件) 3>路径:/dat ...

  10. sql to_char 日期转换字符串

    1.转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11 ...