iOS入門-35CocoaPods安裝並使用

一 . 概述

1.1 先看幾個概念

  • Cocoa
  • Cocoa Touch
  • CocoaPods
  • Podfile
  • gem
  • Cocoapods 工作原理和源碼分析

Cocoa

Cocoa:開發MAC OS X系統中應用程序的開發框架),包含Foundation和AppKit框架。
是Mac OS X上五大開發框架之一,其它四個是Carbon、POSIX、X11和Java。
使用Cocoa編程環境開發的應用程序即爲Cocoa 應用。

Cocoa Touch

開發iPhone OS系統的應用程序,包含Foundation和UIKit框架(我們在Xcode中新建file時候,第一個就是Cocoa Touch Class)。

CocoaPods

Cocoa 應用開發所需依賴庫管理工具。這是官網https://cocoapods.org。
安裝或者升級CocoaPods:
sudo gem install cocoapods

Podfile

Podfile是一個規範,描述了一個或多個一套工程目標的依賴項.瞭解更多可以參考https://www.jianshu.com/p/b8b889610b7e。

Gem

RubyGems(簡稱 gems)是一個用於對 Ruby組件進行打包的 Ruby打包系統。 它提供一個分發 Ruby 程序和庫的標準格式,還提供一個管理程序包安裝的工具。
Gem是一個管理Ruby庫和程序的標準包,它通過Ruby Gem(如http://rubygems.org/)源來查找、安裝、升級和卸載軟件包,非常的便捷。
Mac OS X中會自帶Ruby庫,所以可以直接使用gem命令。

Cocoapods 工作原理和源碼分析

參看https://www.jianshu.com/p/c17cee5e9c7f,比較簡單清晰

1.2 幾個概念之間的關係

  • Ruby (腳本語言):種簡單快捷的面向對象(面向對象程序設計)腳本語言
  • RVM (Ruby Version Manager):是ruby版本管理的英文縮寫。(ruby執行需要ruby解釋器,rvm就是管理ruby解釋器版本的,安裝、卸載、更新、切換 等)
  • RubygGems:是 Ruby 的一個包管理器。它提供一個分發 Ruby 程序和庫的標準格式,還提供一個管理程序包安裝的工具,一般的ruby的很多插件都有由這個包提供
  • CocoaPods:Mac OS X和iOS下的一個第三類庫管理工具。通過CocoaPods工具我們可以爲項目添加被稱爲“Pods”的依賴庫(這些類庫必須是CocoaPods本身所支持的),並且可以輕鬆管理其版本。

二. CocoaPods安裝

2.1 Ruby版本查詢

終端中輸入

ruby -v

我的如下,此時我們暫時不去升級ruby的版本,等下面安裝CocoaPods的時候報版本過低的時候再升級,如果不報錯就是用默認的版本就好了。
在這裏插入圖片描述

2.2 升級Ruby版本(可以先跳過)

終端中輸入,使用命令

brew upgrade ruby

2.3 查看RubyGems版本

終端中輸入,使用命令

gem --version

在這裏插入圖片描述

2.4 升級RubyGems版本

終端中輸入,使用命令

sudo gem update --system

在這裏插入圖片描述

直接輸入mac密碼,然後回車(輸入過程中不會有變化,接着輸入就完了,輸完點擊回車)。

2.5 RubyGems source 域名變更https://gems.ruby-china.com/

下面是源碼鏡像git地址:https://github.com/ruby-china/rubygems-mirror
由於RubyGems源代碼鏡像資源地址發生改變,所以如果沒有修改mac中的鏡像地址,那麼在打包時候會出現各種time out。
首先查看mac中RubyGems source 域名。
終端中輸入

gem sources

如果如下面,就說明已經修改過了
在這裏插入圖片描述
如果不是那麼說明配置不正確,需要重新配置。
先,移除默認的 gem 源

gem sources --remove https://gems.ruby-china.org/(舊鏡像源)

然後,添加新的 gem源

gem sources --add https://gems.ruby-china.com/

最後,查看一下

gem sources

配置gem源完成。

2.6 安裝CocoaPods

sudo gem install cocoapods

如果使用這個報錯,請使用

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

或者安裝最新版本

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

或者安裝指定版本

sudo gem install -n /usr/local/bin cocoapods -v (版本號)

然後就是等了,可能需要很長時間。等安裝成功之後查看版本。
pod --version

在這裏插入圖片描述

2.7 使用CocoaPods,添加一個sqlite工具庫FMDB

  1. Xcode新建一個項目(或者已經存在了)
  2. 打開終端,輸入 cd
  3. 把項目拖入終端,(獲取項目路徑),回車進入工程目錄
  4. 輸入 pod init (生成podfile 文件)
  5. 進入工程目錄中,打開生成的podfile文件,在標記的地方輸入需要的第三方(例如FMDB)
  6. 如果安裝的CocoaPods版本爲1.8以上,就要切換CDN了,如果不切換在引入第三方庫的時候會報CDN錯誤。(CocoaPods 1.8將CDN切換爲默認的spec repo源,並附帶一些增強功能!CDN支持最初是在1.7版本中引入的,最終在1.7.2中完成。 它旨在大大加快初始設置和依賴性分析。)
  7. 解決CDN問題(如果CocoaPods版本爲1.8以上,以下的就不用了)。首先,podfile文件中添加source ‘https://github.com/CocoaPods/Specs.git’(注意鏡像源很可能不能使用,因爲每個人的網絡環境不一樣,所以如果這個鏡像源不能使用我們就更換其他的);其次,終端中輸入並執行pod repo remove trunk移除trunk源。
  8. 終端中執行pod install ,下載第三方庫
    下面是工程目錄
    在這裏插入圖片描述

下面是處理之後的podfile文件

# 下面是指明依賴庫的來源地址
source 'https://github.com/CocoaPods/Specs.git'

# Uncomment the next line to define a global platform for your project
# platform :ios, '13.2'

target '33_SqliteDemo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for 33_SqliteDemo
  # 引入FMDB三方庫
  pod 'FMDB'



  #下面是針對測試引入依賴,默認沒有依賴東西。
  target '33_SqliteDemoTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target '33_SqliteDemoUITests' do
    # Pods for testing
  end

end

下面是執行pod install之後的終端頁面,可能需要很長時間。
在這裏插入圖片描述

也有可能經過一段時間之後會失敗,比如下面情況

提示錯誤

在這裏插入圖片描述

說明我們的鏡像源有問題了,總是不能下載“包含所有可用三方庫信息的倉庫”。於是我們選擇其他的鏡像源地址。
例如下面的:https://mirror.tuna.tsinghua.edu.cn/help/CocoaPods/。其中使用的方法也很詳細了,於是接下來的步驟如下:

  • cd ~/.cocoapods/repos
  • pod repo remove master
  • git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
  • 然後將podfile文件中source 'https://github.com/CocoaPods/Specs.git’更換爲source ‘https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git’。
  • 進入我們的工程根目錄
  • 執行pod install

然後看一下項目根目錄,其中多出來不少文件,如下
在這裏插入圖片描述

此時我們將原來的Xcode工程關閉,然後點擊後綴爲“.xcworkspace”文件打開Xcode,之後就可以使用了。
不過在使用的過程中可能出現在import頭文件的時候出現不能自動提示的可能。解決可參考“xcode import pod 文件不提示“https://www.cnblogs.com/cwy173/p/5584109.html“

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章