CocoaPods内容整理

前言:

淘宝源不再进行更新,取而代之的是Ruby China 的 RubyGems 镜像上线 ,替换成Ruby China源,所以需要更新Ruby源

具体步骤:

1.首先查看gem版本,最新是2.6.6

gem -v

2.更新gem

sudo gem update --system #需要翻墙

3.出现 Operation not permitted - /usr/bin/update_rubygems错误,所以可以用brew安装,然后再更新,执行第2步。

brew install ruby

4.查看当前源

gem sources -l # 当前源为:https://ruby.taobao.org/ 或者系统的 https://rubygems.org/

5.替换当前源

gem sources --add https://gems.ruby-china.org/ --remove https://ruby.taobao.org/

Cocoapods原理

CocoaPods 源码 : https://github.com/CocoaPods/CocoaPods

CocoaPods的工作主要是通过ProjectName.xcworkspace来组织的,在打开ProjectName.xcworkspace文件后,发现Xcode会多出一个Pods工程

    • 库文件引入及配置:
      • 库文件的引入主要由Pods工程中的Pods-ProjectName-frameworks.sh脚本负责,在每次编译的时候,该脚本会帮你把预引入的所有三方库文件打包的成ProjectName.a静态库文件,放在我们原Xcode工程中Framework文件夹下,供工程使用。
    • Resource文件:
      • Resource资源文件主要由Pods工程中的Pods-ProjectName-resources.sh脚本负责,在每次编译的时候,该脚本会帮你将所有三方库的Resource文件copy到目标目录中。
    • 依赖参数设置:
      • 在Pods工程中的的每个库文件都有一个相应的SDKName.xcconfig,在编译时,CocoaPods就是通过这些文件来设置所有的依赖参数的,编译后,在主工程的Pods文件夹下会生成两个配置文件,Pods-ProjectName.debug.xcconfigPods-ProjectName.release.xcconfig

安装Cocoapods

首先打开神器 Terminal (最快途径打开程序或文件:control+空格 搜索)

  1. 移除ruby软件源
    gem sources --remove https://rubygems.org/

  2. 替换成Ruby-China的软件源(之前是淘宝源,目前是这个)
    gem sources -a https://gems.ruby-china.com/

  3. 查看是否替换成功:
    gem sources -l
    4.请确保只有 gems.ruby-china.com下,安装rails(这步可以跳过吗?我看官网需要输入,不知道怎么回事。望解答。)
    gem install rails

  4. 替换 CocoaPods 的镜像索引(可以跳过,详情看唐巧大神的文章)
    pod repo remove master pod repo add master https://gitcafe.com/akuandev/Specs.git pod repo update

  5. 安装
    sudo gem install cocoapods
    注意:
    Mac OSX 10.11之后安装的方法

    sudo gem install -n /usr/local/bin cocoapods
    如果不成,用以下方法进行安装

$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$ gem install cocoapods
$ export PATH=$PATH:$HOME/Software/ruby/bin
$ pod --version
	0.39.0
  1. 升级CocoaPods

升级很简单,再次执行安装命令即可

移除Cocoapods

  • 清空第三方库和相关依赖库
    • 编辑Podfile文件,清除里面所有库,然后终端输入:pod install。
  • 删除之前的4个文件,Podfile、Podfile.lock、Pods文件夹和.xcworkspace文件。
  • 然后打开.xcodeproj,删除项目中的libpods.a和Pods.xcconfig引用。
  • TARGETS - Build Phases 删除有关pods的选项,至此完成删除。

使用Cocoapods

1.进入到工程目录
这里写图片描述

cd 工程的目录 (注意:包含PodTest文件夹、PodTest.xcodeproj、PodTestTest的那个总目录)

2.搜索要添加的第三方库

pod search UITableView+FDTemplateLayoutCell

3.添加Podfile文件

vim Podfile

4.编写Podfile

//输入” i “,进入编辑模式。
# CocoaPods对于不同Target引入不同的第三方库Podfile的写法
platform:ios, '8.0'

target 'MeStar' do
  pod 'Masonry', '0.6.2'
  target 'MeStar Dev' do
    pod 'Objection'  -- 引入最新版本
    pod 'Objection', '0.9'  -- 引入特定的版本
    pod 'Objection', '>0.9'> -- 任何大于0.9的版本
	pod 'Objection', '>=0.9'> -- 任何大于等于0.9的版本
	pod 'Objection', '<0.9'> -- 任何小于0.9的版本
	pod 'Objection', '<=0.9'> -- 任何小于等于0.9的版本
	pod 'Objection', '~>0.9'> -- 任何介于0.9到1.0的最新版本,不包含1.0
	pod 'AFNetworking', :path => '~/Documents/AFNetworking'  -- 使用本地路径引入
	pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'  -- 使用git库引入
	pod 'JSONKit', :podspec => 'https://example.com/JSONKit.podspec'  -- 使用外部的podspec来引入 
  end
  target 'MeStarTests' do
    pod 'OCMock', '3.2'
  end
end
//输入 “wq”保存当前的文件
  1. 安装第三方库
#第一次的时候,需要安装。
pod install 
#以后的时候,可以更新。
pod update 

注意:

  1. pod update / pod install 卡在Updating local specs repositories
  • 等待即可

因为每次执行install或update的时候,都需要同步一下CocoaPods Specs,所以速度通常很慢

  1. 如果你使用的第三方库并不是经常更新,则不用经常更新那个Specs库,使用下边的命令

“pod install --verbose --no-repo-update”

  1. 当在update或install时遇到这个问题,:
`Unable to find a specification for `xxxxx (~> 1.x.x)` depended upon by Podfile.` 

只需要把当前Pod的目录清理一下就行了。在终端执行以下命令:

pod repo remove master  
pod setup
  1. Podfile.lock的文件

    • 不应该加入到.gitignore

    • 会锁定当前各依赖库的版本

      • 执行pod install 不会更改版本
      • 执行pod update才会改Podfile.lock

参考:
1.手把手教你使用CocoaPods管理你的iOS第三方开源类库
2.使用CocoaPods过程中的几个问题
3.用CocoaPods做iOS程序的依赖管理(唐巧大神的杰作,很好的参考,提高用)

知识补充

  • RubyGems(简称 gems)

    • 用于对 Ruby组件进行打包的 Ruby 打包系统
    • 可以分发 Ruby 程序和库的标准格式
    • 可以管理程序包安装
    • Mac系统自带
  • Ruby on Rails(简称 Rails)

    • Ruby on Rails 是一个用于开发数据库驱动的网络应用程序的完整框架
    • Mac系统自带
  • Ruby

    • 一种简单快捷的面向对象脚本语言
    • Mac系统自带
  • RVM

    • 全称:Ruby Version Manager

    • RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换

    • 会用系统的包管理工具(比如 brew,比如 apt)安装依赖的软件包

    • 安装

      #1 获取谜钥
      gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
      #2 下载rvm
      \curl -sSL https://get.rvm.io | bash -s stable
      
      
  • NPM:Node Package Manager

    • NodeJS包管理和分发工具
    #自动安装好了nodejs和npm 
    brew install node
    
  • Homebrew

    • 是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件

    • 基于Ruby的

    • 把软件包安装到/usr/local/Cellar/下,然后在/usr/local/bin下建立符号链接

    • 安装

      /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
      
  • curl

  • 利用URL语法在命令行方式下工作的开源文件传输工具

  • Mac系统自带

  • wget(World Wide Web”与“get”的结合)

    • 一个从网络上自动下载文件的自由工具

    • 支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理

    • 安装

      brew install wget
      
  • NVM

    • 是 Mac 下的 node 管理工具,管理不同版本node和npm,有点类似管理 Ruby 的 rvm.

    • 安装

      curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
      
  • GPG(全称:GNU Privacy Guard)

    • GPG即GNU Privacy Guard,它是加密工具PGP(Pretty Good Privacy )的非商业化版本

    • 用于对Email、文件及其他数据的收发进行加密与验证,确保通信数据的可靠性和真实性

    • 安装

       brew install gpg
      

拓展

1 用Homebrew + RVM 安装和管理ruby的经典方式

2 利用Cocoapods创建基于SVN的私有库podspec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值