CocoaPods使用

来源:http://www.cnblogs.com/EchoHG/archive/2017/07/08/7136046.html
-Advertisement-
Play Games

測試CocoaPods是否安裝成功: 在終端輸: pod search + 開源類庫的名字 如: 若安裝成功會出現下圖所示: 如果安裝失敗,點擊回車後會報一行紅色錯誤,一般遇到這種情況最笨的辦法就是重新安裝。 簡單實用創建一個CocoaPods 1)在桌面上創建一個工程Demo(以Xcode7.3. ...


 

測試CocoaPods是否安裝成功:

在終端輸:

pod search + 開源類庫的名字

如:

pod search AFNetWorking

 若安裝成功會出現下圖所示:

 

如果安裝失敗,點擊回車後會報一行紅色錯誤,一般遇到這種情況最笨的辦法就是重新安裝。

 

簡單實用創建一個CocoaPods

1)在桌面上創建一個工程Demo(以Xcode7.3.1創建)。它的文件構成如下:

 

2)在這個工程中創建一個Podfile文件(註意:名字必須是Podfile) 

<1>使用終端創建Podfile文件

a.使用終端找到當前這個工程文件夾

$cd Desktop/Demo

b.創建空白的Podfile文件

$touch Podfile

 

第二種方法創建Podfile

<2>使用高級記事本(如:Sublime Text 2)創建Podfile文件

創建一個空白文件並保存,文件名為Podfile(後面不跟任何字元)

此時的文件結構如下:

 

 

3)在Podfile文件中寫入要使用的第三方框架,這裡以AFNetworking為例。打開終端,輸入pod search AFNetworking回車,如下圖所示,裡面顯示了AFNetworking這個開源類庫的一些基本信息。

 

只需要將Podfile文件中書寫的那句複製並粘貼到Podfile文件中即可

 

1 platform :ios,'8.0 '
2 target 'CocoaPodsDemo' do
3     pod 'AFNetworking','~>3.1.0'
4  end

 

Pod文件配置

解釋:

第一行:platform:ios, '8.0' ----->開源類庫支持的項目最低系統版本;

第二行和第四行:這是CocoaPods升級1.0.1版本後新增的,單引號中間填寫項目工程名,其書寫時固定格式,兩行中間是開源類庫的配置信息;

第三行:這行信息是告訴CocoaPods去下載AFNetworking類庫和它的3. 1.0版本,是一條配置信息。

 

4)將開源類庫導入工程中

<1>使用終端找到當前這個工程文件夾

$cd Desktop/Demo

<2>安裝第三方開源類庫(跟新類庫可使用$pod update)

$pod install

安裝完成如下圖所示

註意:上面綠色的兩行內容意思是說:請關閉任何當前Xcode會話和使用的演示,從現在起使用“Demo.xcworkspace”這個項目。

 

這時再次打開項目文件就會發現多了三個文件,如下圖所示:

 

 

5)總結CocoaPods的使用

<1>在終端搜索相應的開源類庫,命令為:$pod search +開源類庫;

<2>打開Podfile文件,修改其中的信息;

<3>安裝(更新)即可,命令為:$pod install(或$pod update)。

使用CocoaPods的註意點

(1)從現在起,我們只需要使用尾碼名為.xcworkspace的文件來開發;

(2)第三方類庫會被編譯成靜態庫供我們的工程使用,我們可以打開查看源碼,但是不能做任何修改;

(3)筆者在此演示的是一個第三方開源類庫的導入,其實多個第三方開源類庫的導入是同樣的操作,Podfile文件中的書寫如下圖所示:

                                                                 多個類庫的配置

4)使用CocoaPods刪除不用的類庫

前面給大家演示了使用CocoaPods如何導入類庫,如果不想使用其中某個類庫怎麼辦呢?

其實很簡單,只要在Podfile文件中將不想用的類庫的配置信息刪除,並且在終端執行一次pod update命令即可,重新打開就會發現對應的類庫已經被移除了。

 

5)第三方開源類庫版本號的各種寫法與含義

 1 pod 'AFNetworking' //不顯式指定依賴庫版本,表示每次都獲取最新版本
 2 
 3 pod 'AFNetworking', '2.0' //只使用2.0版本
 4 
 5 pod 'AFNetworking', '>2.0' //使用高於2.0的版本
 6 
 7 pod 'AFNetworking', '>=2.0' //使用大於或等於2.0的版本
 8 
 9 pod 'AFNetworking', '<2.0' //使用小於2.0的版本
10 
11 pod 'AFNetworking', '<=2.0' //使用小於或等於2.0的版本
12 
13 pod 'AFNetworking', '~>0.1.2' //使用大於等於0.1.2但小於0.2的版本,相當於>=0.1.2並且<0.2.0
14 
15 pod 'AFNetworking', '~>0.1' //使用大於等於0.1但小於1.0的版本
16 
17 pod 'AFNetworking', '~>0' //高於0的版本,寫這個限制和什麼都不寫是一個效果,都表示使用最新版本

 

 

6)每次更改了Podfile文件後都需要執行一次$pod

update命令(此時如果新添加了類庫,CocoaPods會下載新添加的類庫,並且更新有新版本的類庫)。

(7)CocoaPods的重新安裝或者版本更新

這個有點繁瑣,必須先卸載原先的CocoaPods,然後重新執行安裝命令即可。其卸載命令為:

$ sudo gemuninstall CocoaPods

 

使用CocoaPods導入頭文件的常見問題及解決辦法

(1)CocoaPods找不到頭文件

問題描述:使用CocoaPods時,import找不到頭文件。

問題原因:這是因為還沒設置頭文件的目錄。

解決辦法:在項目的Target的里設置一下,添加CocoaPods頭文件目錄:目錄路徑直接寫:${SRCROOT},後邊選擇recursive(會在相應的目錄遞歸搜索文件) ,就可以了。

註意:是在User Header Search Paths里添加,不是上面的Header Search Paths.

如下圖:


CocoaPods找不到頭文件解決方法

(2)CocoaPods導入頭文件不提示

問題描述:使用CocoaPods時,import導入頭文件時,不提示文件名。

問題原因:這是因為還沒設置頭文件的目錄。

解決辦法:在項目的Target的里設置一下,添加CocoaPods頭文件目錄:目錄路徑直接寫:$(PODS_ROOT),後邊選擇recursive (會在相應的目錄遞歸搜索文件),就可以了。

註意:是在User Header Search Paths里添加,不是上面的Header Search Paths.

如下圖:

 

iOS 最新版 CocoaPods 的安裝及使用

144  作者 小松wolf  2016.07.30 11:26* 字數 2562 閱讀 2460評論 8

       當在開發iOS應用時,會經常使用到很多的第三方開源類庫,一般的方法是直接從GitHub下載,然後拖到項目中使用,如果該開源類庫不依賴其他的類庫,就可以直接使用;如果該開源類庫還依賴一些其他的類庫,則需要我們手動導入並配置,顯得十分麻煩。此時第三方開源類庫管理工具CocoaPods就顯得十分重要了。接下來,就帶大家看看CocoaPods的安裝及使用:

一、下載和安裝CocoaPods(使用終端)

      在安裝CocoaPods之前,首先要在本地安裝好Ruby環境,預設情況下,Mac自帶Ruby環境。因為Ruby的預設源rubygems.org使用的是亞馬遜的雲服務,在國內使用會被牆,所以需要更換一下Ruby的源,將其更換為國內淘寶的源。

1.移除現有Ruby預設源

$gem sources --remove https://rubygems.org/

2.使用新的源

$gem sources -a https://gems.ruby-china.org

這部分內容可以訪問RubyGems鏡像網站

3.驗證新源是否替換成功

$gem sources -l

新源替換成功如下圖:


新源替換成功

4.安裝CocoaPods(分Mac系統進行)

(1)Mac系統:OS X EL Capitan(2015年9月29號發佈)及之後

<1>$sudo gem install -n /usr/local/bin cocoapods

<2>$pod setup

(2)Mac系統:OS X 10.10 Yosemite(2014年6月3號發佈)及之前

<1>$sudo gem install cocoapods

<2>$pod setup

註意:輸入pod setup之後可能會一直卡頓在Setting up CocoaPods master

repo處,原因是CocoaPods版本升級到1.0.1版本後,其文件有800多兆大,需要慢慢下載。為了查看安裝進度,可以另開啟一個終端

(1)輸入cd ~/.cocoapods;

(2)進入.cocoapods之後,輸入du –sh查看已下載文件的大小。

5.更新gem

$sudo gem update --system

備註:在輸入上面的命令後需要輸入密碼(Mac電腦的開機密碼),直接輸入就好,上面的游標不會變化,輸入完成後直接確定即可。

更新完成後顯示如下圖所示:


gem更新成功

二、CocoaPods的使用

1.測試CocoaPods的功能

      當上面的步驟都做完,需要查看一下CocoaPods是否安裝成功(一般會安裝成功,不過也不排除一些意外),這時只需在終端輸入pod search +開源類庫的名字(pod search AFNetworking)回車即可。

如果安裝成功則如下圖所示,會顯示出相關的所有第三方開源類庫。


CocoaPods測試成功

如果安裝失敗,點擊回車後會報一行紅色錯誤,一般遇到這種情況最笨的辦法就是重新安裝。

2.簡單實用CocoaPods(以一個例子來說明)

(1)在桌面上創建一個工程Demo(以Xcode7.3.1創建)。它的文件構成如下:


項目基本文件結構

(2)在這個工程中創建一個Podfile文件(註意:名字必須是Podfile)

<1>使用終端創建Podfile文件

a.使用終端找到當前這個工程文件夾

$cd Desktop/Demo

b.創建空白的Podfile文件

$touch Podfile

<2>使用高級記事本(如:Sublime Text 2)創建Podfile文件

創建一個空白文件並保存,文件名為Podfile(後面不跟任何字元)

此時的文件結構如下:


新增Podfile文件

(3)在Podfile文件中寫入要使用的第三方框架,這裡以AFNetworking為例。打開終端,輸入pod search AFNetworking回車,如下圖所示,裡面顯示了AFNetworking這個開源類庫的一些基本信息。


類庫基本信息

打開工程文件夾,選擇Podfile文件,右擊選擇文本編輯或者高級記事本打開。

<1>CocoaPods版本為1.0.1之前

只需要將Podfile文件中書寫的那句複製並粘貼到Podfile文件中即可

<2>CocoaPods版本為1.0.1及之後書寫如下圖所示:


Podfile文件配置

解釋:

 

第一行:platform:ios, '8.0' ----->開源類庫支持的項目最低系統版本;

第二行和第四行:這是CocoaPods升級1.0.1版本後新增的,單引號中間填寫項目工程名,其書寫時固定格式,兩行中間是開源類庫的配置信息;

第三行:這行信息是告訴CocoaPods去下載AFNetworking類庫和它的3. 1.0版本,是一條配置信息。

(4)將開源類庫導入工程中

<1>使用終端找到當前這個工程文件夾

$cd Desktop/Demo

<2>安裝第三方開源類庫(跟新類庫可使用$pod update)

$pod install

安裝完成如下圖所示


安裝成功信息圖

註意:上面綠色的兩行內容意思是說:請關閉任何當前Xcode會話和使用的演示,從現在起使用“Demo.xcworkspace”這個項目。

這時再次打開項目文件就會發現多了三個文件,如下圖所示:


類庫導入效果

此時按照提示雙擊Demo.xcworkspace這個文件(不再使用Demo.xcodeproj文件)打開項目,觀察右側導航面板有兩個工程,第一個Demo工程是我們正常的開發工程,第二個Pods工程是開源類庫依賴工程(使用CocoaPods導入的第三方開源類庫都在這裡面),如下圖所示:


使用類庫項目結構圖

它的文件結構還是很明顯的,我們需要特別註意的是AFNetworking已經在項目中了,並且測試是可以使用的(筆者使用Xcode7.3.1開發測試的,鑒於這個版本的提示比較坑,所以在使用時使用<>導入時有提示,但使用””導入時沒有提示,不過此時使用何種導入方式都可以,都可以使用AFNetworking類庫了,建議使用””導入)。

(5)總結CocoaPods的使用

<1>在終端搜索相應的開源類庫,命令為:$pod search +開源類庫;

<2>打開Podfile文件,修改其中的信息;

<3>安裝(更新)即可,命令為:$pod install(或$pod update)。

3.使用CocoaPods的註意點

(1)從現在起,我們只需要使用尾碼名為.xcworkspace的文件來開發;

(2)第三方類庫會被編譯成靜態庫供我們的工程使用,我們可以打開查看源碼,但是不能做任何修改;

(3)筆者在此演示的是一個第三方開源類庫的導入,其實多個第三方開源類庫的導入是同樣的操作,Podfile文件中的書寫如下圖所示:


多個類庫的配置

 

(4)使用CocoaPods刪除不用的類庫

前面給大家演示了使用CocoaPods如何導入類庫,如果不想使用其中某個類庫怎麼辦呢?其實很簡單,只要在Podfile文件中將不想用的類庫的配置信息刪除,並且在終端執行一次pod update命令即可,重新打開就會發現對應的類庫已經被移除了。

(5)第三方開源類庫版本號的各種寫法與含義

pod 'AFNetworking' //不顯式指定依賴庫版本,表示每次都獲取最新版本

pod 'AFNetworking', '2.0' //只使用2.0版本

pod 'AFNetworking', '>2.0' //使用高於2.0的版本

pod 'AFNetworking', '>=2.0' //使用大於或等於2.0的版本

pod 'AFNetworking', '<2.0' //使用小於2.0的版本

pod 'AFNetworking', '<=2.0' //使用小於或等於2.0的版本

pod 'AFNetworking', '~>0.1.2' //使用大於等於0.1.2但小於0.2的版本,相當於>=0.1.2並且<0.2.0

pod 'AFNetworking', '~>0.1' //使用大於等於0.1但小於1.0的版本

pod 'AFNetworking', '~>0' //高於0的版本,寫這個限制和什麼都不寫是一個效果,都表示使用最新版本

(6)每次更改了Podfile文件後都需要執行一次$pod

update命令(此時如果新添加了類庫,CocoaPods會下載新添加的類庫,並且更新有新版本的類庫)。

(7)CocoaPods的重新安裝或者版本更新

這個有點繁瑣,必須先卸載原先的CocoaPods,然後重新執行安裝命令即可。其卸載命令為:

$ sudo gemuninstall CocoaPods

4.使用CocoaPods導入頭文件的常見問題及解決辦法

(1)CocoaPods找不到頭文件

問題描述:使用CocoaPods時,import找不到頭文件。

問題原因:這是因為還沒設置頭文件的目錄。

解決辦法:在項目的Target的里設置一下,添加CocoaPods頭文件目錄:目錄路徑直接寫:${SRCROOT},後邊選擇recursive(會在相應的目錄遞歸搜索文件) ,就可以了。

註意:是在User Header Search Paths里添加,不是上面的Header Search Paths.

如下圖:


CocoaPods找不到頭文件解決方法

(2)CocoaPods導入頭文件不提示

問題描述:使用CocoaPods時,import導入頭文件時,不提示文件名。

問題原因:這是因為還沒設置頭文件的目錄。

解決辦法:在項目的Target的里設置一下,添加CocoaPods頭文件目錄:目錄路徑直接寫:$(PODS_ROOT),後邊選擇recursive (會在相應的目錄遞歸搜索文件),就可以了。

註意:是在User Header Search Paths里添加,不是上面的Header Search Paths.

如下圖:

 

 

參考資料:CocoaPods 的安裝與使用

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 電腦常識 1.1 軟體開發 1.1.1 軟體 一系列按照特定順序組織的電腦數據和指令的集合。 常用的軟體: 系統軟體: DOS,Windows,Linux等。 應用軟體: 掃雷,迅雷,QQ等。 系統軟體: DOS,Windows,Linux等。 應用軟體: 掃雷,迅雷,QQ等。 DOS,Wi ...
  • 原創作品,可以轉載,但是請標註出處地址:http://www.cnblogs.com/V1haoge/p/7136575.html 1、Calendar概述 Java官方推薦使用Calendar來替換Date的使用,Calendar與Date之間可以自由的進行轉換,轉換的紐帶是time,使用Cale ...
  • 前提: python操作excel需要使用的模塊有xlrd、xlwt、xlutils。對excel進行讀、寫、更新操作。操作excel時需要先導入這些模塊,demo如下: excel-讀操作知識點: excel數據格式如下: excel - 寫操作知識點: excel寫入 新的excel後,數據格式 ...
  • n個數,求最小區間覆蓋著n個數中所有的不相同的數字。 解題思路: AC代碼: ...
  • java 企業網站源碼 前後臺都有 靜態模版引擎, 代碼生成器大大提高開發效率 前臺: 支持三套模版, 可以在後臺切換 系統介紹: 1.網站後臺採用主流的 SSM 框架 jsp JSTL,網站後臺採用freemaker靜態化模版引擎生成html 2.因為是生成的html,所以訪問速度快,輕便,對服務 ...
  • 如何使用自定義字體 如何使用自定義字體 在講icon font之前,首先先來看看普通自定義字體是如何在ios中使用的,兩個原理是一樣的。這裡以KaushanScript-Regular為例: Step 1: 導入字體文件 將字體文件拖入項目(ios支持的字體格式有:.ttf、.otf,其他格式不確定 ...
  • 下載Charles Proxy v4.1.1版本,百度雲盤下載 或 去官網下載 Mac版本安裝後要先打開Charles一次,Windows版可以忽略此步驟 在這個網站(http://charles.iiilab.com/)下載破解文件 charles.jar 替換掉原文件夾里的charles.jar... ...
  • GCD 是一種非常方便的使用多線程的方式。通過使用 GCD,我們可以在確保儘量簡單的語法的前提下進行靈活的多線程編程。在 “複雜必死” 的多線程編程中,保持簡單就是避免錯誤的金科玉律。然而,GCD不像NSOperation那樣可以調用 -(void)cancel 取消一個操作的執行(註意這裡的取消只 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...