CocoaPods - 基本环境搭建

1、 什么是CocoaPods
CocoaPods是OS X和iOS下的一个第三类库管理工具,经过CocoaPods工具咱们能够为项目添加被称为` Pods `的依赖库(这些类库必须是CocoaPods自己所支持的),而且能够
轻松管理其版本

1. 在引入第三方类库时,CocoaPods能够自动为Xcode项目配置好各类各样的配置,包括 配置变异阶段,链接器阶段,甚至是ARC环境的-fno-objc-arc 配置等.
2.使用Cocoapods能够查找最新的第三库、而且是最新的、标准的第三方库,而且能够引用时更新最新版本第三方库
复制代码
2、 Ruby镜像准备
  1. 查看当前Ruby版本
rvm -v
复制代码
  1. ruby镜像源
因为国内防火墙的问题,须要将镜像源更换为ruby-china,以前网上大多使用https://ruby.taobao.org,但taobao Gems 源已中止维护,现由 ruby-china 提供镜像
 服务. 所以,咱们使用 https://gems.ruby-china.org/做为最新的镜像源服务

复制代码
  1. 查看当前最新的镜像源,执行命令
gem sources -l
复制代码
  1. 如已经是 ruby-china ,则跳过此步骤; 更换镜像源地址:
gem sources --remove https://rubygems.org/
    
    gem sources --add https://gems.ruby-china.org/
复制代码
  1. 再次查看源路径是否更新成功
gem sources -l
复制代码
  1. 更新Ruby,执行命令(只有确保sources是ruby-china 才能够更新)
sudo gem update --system
复制代码
三 、安装Cocoapods
  1. 查看是否已已安装,如已安装,则升级,步骤一致
which pod 
复制代码
  1. 安装cocoapods ,执行命令
sudo gem install cocoapods
复制代码

中间可能出现该错误ios

ERROR: While  executing gem ... (Errno::EPERM)
        Operation not permitted -/usr/bin/pod
复制代码

若有以上错误,执行命令git

sudo gem install -n /usr/local/bin cocoapods
复制代码

安装过程可能须要点时间 ,尽可能在确保网速能够的环境下安装,耐心等待,成功后,能够执行命令查看github

pod --version
复制代码
  1. 安装成功后,设置本地仓库
即把全部上传到cocoapods的第三方框架下载每一个版本和网络地址以及一些其余描述信息到本地,由于服务器是在国外,因此比较耗时间,执行命令:
  
  pod setup
复制代码
  1. 安装插件cocoapods-packager
sudo gem install cocoapods-packager
复制代码
其做用:
1. 经过podspec打包出.a或者.framework,提供给不使用cocoapods或者不方便暴露源码的场景

2. 解决经过不一样的方式添加相同的第三方致使的冲突
复制代码
  1. 查看pod 命令帮助
pod help
复制代码
4、开始使用Cocoapods

技术要求:json

Xcode新建工程,并使用cocoapods 方式,引入AFNetworking类库
复制代码
  • 首先查看AFNetworking是否支持Cocoapods
pod search AFNetworking
复制代码

若是中间出现错误:ruby

[!] Unable to find a pod with name, author, summary, or descriptionmatching '······'
复制代码

若有以上错误,则能够删除本地 search_index.json 文件,从新 pod search,命令以下:bash

· rm ~/Library/Caches/CocoaPods/search_index.json
 
 · pod search AFNetworking
复制代码

执行命令后:服务器

-> AFNetworking (3.2.1)
   A delightful iOS and OS X networking framework.
   pod 'AFNetworking', '~> 3.2.1'
   - Homepage: https://github.com/AFNetworking/AFNetworking
   - Source:   https://github.com/AFNetworking/AFNetworking.git
   - Versions: 3.2.1, 3.2.0, 3.1.0, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-beta.3, 3.0.0-beta.2,
   3.0.0-beta.1, 2.7.0, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.1, 2.4.0,
   2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 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, 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, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
   - Subspecs:
     - AFNetworking/Serialization (3.2.1)
     - AFNetworking/Security (3.2.1)
     - AFNetworking/Reachability (3.2.1)
     - AFNetworking/NSURLSession (3.2.1)
     - AFNetworking/UIKit (3.2.1)

-> AFNetworking+AutoRetry (0.0.5)
   Auto Retries for AFNetworking requests
   pod 'AFNetworking+AutoRetry', '~> 0.0.5'
   - Homepage: https://github.com/shaioz/AFNetworking-AutoRetry
   - Source:   https://github.com/shaioz/AFNetworking-AutoRetry.git
   - Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]

-> AFNetworking+Ext (1.2.1)
   AFNetworking的封装, 并提供一个 UIImageView+DYLoading  cache in fileSystem+memory
   pod 'AFNetworking+Ext', '~> 1.2.1'
   - Homepage: https://github.com/junhaiyang/AFNetworkingExt
:

复制代码

从搜索结果可知:网络

AFNetworking 支持 Cocoapods方式引入
复制代码
  • 新建项目,初始化Podfile
1. cd 项目路径到terminal终端 ,执行命令
   
  2. pod init
复制代码
terminal:

AllenLASdeMac-Pro:~ allenlas$ cd /Users/allenlas/Desktop/XKHttpNetworkHelper 
AllenLASdeMac-Pro:XKHttpNetworkHelper allenlas$ pod init 
复制代码

生成Profile文件:框架

//引入方式(通常不提倡指定版本,不利于更新类库)
 pod "AFNetworking" 或指定版本 pod 'AFNetworking', '~> 3.2.1'
复制代码
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'XKHttpNetworkHelper' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for XKHttpNetworkHelper]

   pod 'AFNetworking'


  target 'XKHttpNetworkHelperTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'XKHttpNetworkHelperUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end
复制代码
  • 引入
pod install --no-repo-install 或 pod update --no-repo-update
复制代码

打开终端,在项目根路径下执行:工具

AllenLASdeMac-Pro:~ allenlas$ cd /Users/allenlas/Desktop/XKHttpNetworkHelper 
AllenLASdeMac-Pro:XKHttpNetworkHelper allenlas$ pod install --no-repo-update
复制代码

执行结果:

image

  • 在项目中引入 AFNetworking类库
#import <AFNetworking.h> 或 #import "AFNetworking.h"
复制代码

若是在项目中 #import 第三方类库.h文件 没有提示,则须要把pods目录添加到用户头文件检索的路径到Xcode中

Xcode 选择target ->  BuildSettings ->  search Paths -> User Header Search Paths
  
  点击“+”号添加一项:而且输入:$(PODS_ROOT) , 选择:recursive(会在相应的目录递归搜索文件)
复制代码

image
相关文章
相关标签/搜索