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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...