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
相關文章
相關標籤/搜索