CocoaPods 使用手冊


目錄                                                                                                                                               

1.核心組件                                                                                                                                                                              

1.1 CocoaPods / CocoaPod                                                                                                                                            

1.2 CocoaPods / Core                                                                                                                                                       

1.3 CocoaPods / Xcodeproj                                                                                                                                          

2.安裝和更新                                                                                                                                                                        

3.Pod Commands                                                                                                                                                                  

4.Podfile                                                                                                                                                                                 

5..podspec Syntax                                                                                                                                                         

6.支持第三方開發者將CustomSDK pod到自己的工程,如何做?                                             

7.制作支持安裝第三方靜態庫podspec和podfile                                                                          

8.制作支持subspec的podspec 文件                                                                                                           

9.對CocoaPods文檔查看的支持                                                                                                                        

10.清理pod install配置后的工程                                                                                                               

11.CocoaPods實用網站  

12. Pod install 開源庫實戰

                                                                                                                                            

1.核心組件

1.1 CocoaPods / CocoaPod

這是面向用戶的組件,每當你執行一個pod命令時,這個組件將被激活。它包括了所有實用CocoaPods的功能,並且還能調用其他gem包來執行任務。

1.2 CocoaPods / Core

Core gem提供了與CocoaPods相關的文件(主要是Podfile和podspecs)的處理。

1.2.1 Podfile

Podfile用於配置項目所需要的第三方庫。它能被高度定制,所以你可以盡可能地給它添加你想要的特性。

1.2.2 Podspec

.podspec文件描述了一個庫將怎樣被添加進工程中。.podspec文件可以標識該第三方庫所需要的源碼文件、依賴庫、編譯選項,以及其他第三方庫需要的配置。

1.3 CocoaPods / Xcodeproj

這個包負責工程文件直接關系的處理。它能創建以及修改.xcodeproj文件和.xcworkspace文件。它也可以作為一個獨立的包使用,當你要編寫修改項目文件的腳本時,可以考慮使用CocoaPods/Xcodeproj。

 

2.安裝和更新

安裝CocoaPods這個工具,需要用到gem(ruby的第三方庫管理工具)。MacOS中默認支持gem,但是有時安裝或更新cocoapods,需要更高版本的gem支持。

[sudo] gem update --system,升級gem。(用此命令可能仍然無法升級gem, 可嘗試將gem包下載到本地(速度很快),細節https://rubygems.org/)

經驗累積:

1、chmod 775 /usr/local,修改usr/local的訪問權限,使[sudo] gem install cocoapods有權限安裝。

2、operation not permitted - /usr/bin/xcodeproj,gem list可以查看到所有安裝到本機的包,我電腦上的本地路徑:/Library/Ruby/Gems/[version]/gems。查看目錄下specifications目錄,可能無xcodepro.gemspec文件,則從cocoapod的github上下載對應版本的文件。即可解決

3、operation not permitted - /usr/bin/pod, 使用此命令安裝 

sudo gem install -n /usr/local/bin cocoapods,即指定pod的路徑。出現此問題,應該是gem的環境變量配置不正確。

 

關於安裝舊版本:

sudo gem uninstall cocoapods

Password:

 

Select gem to uninstall:

 1. cocoapods-0.34.4

 2. cocoapods-0.35.0

 3. All versions

刪除新版本,自然便在舊版本了。如果之前未安裝過指定的舊版本,則:

sudo gem install cocoapods -v 0.25.0

 

3.Pod Commands

1、查看pod所有命令:pod help

2、查看具體命令用法: pod <command> —help, 例如:pod try —help

3、安裝和配置第三方庫: pod install. 如果想看到具體細節,pod install --verbose.一個很不錯的link: http://blog.jobbole.com/53365/

4、檢測並更新新版本庫:pod update。可以通過pod outdated查看Pods中已過期的第三方開源庫。pod install & pod update區別: 例如:Podfile中,pod ‘SVProgressHUD’,而未指定此開源庫版本。pod install,如果SVProgressHUD已存在Pods中,則直接使用它。但是,pod update,會重新下載最新版本到Pods中。

 

5、產生`~/.cocoapods/repos`: pod setup. Cocoapods目錄中保持了它支持的所有第三方開源庫信息. 更新,sudo rm -fr ~/.cocoapods/repos/master, 再pod setup。也可以使用git進行更新。

6、搜索第三方開源庫:  pod search <open source>, 在cocoapods這個目錄中搜索。也可以在http://cocoapods.org中搜索第三方庫。

 

4.Podfile

具體可以查看: http://guides.cocoapods.org/syntax/podfile.html

 

1). pod ‘objection’’version’;

 例如,pod ‘MCDateExtensions’,不指定版本,在pod update時會獲取最新的版本;pod ‘MCDateExtensions’’~>1.0.0’,獲取的版本信息是[1.0.0, 1.1.0). ~>是參照ruby的語法的,~>x.y.z, 的意思是版本號 x,y 固定,但可以大於等於 z。通常版本號的命名有其慣例:x major 版本號升級表示有 API 發生不向后的兼容性變動,y minor 版本號升級表示有功能新增,z tiny 版本號升級表示 bugs 修正。因此 “~> x.y.z” 可以讓我們保有升級彈性,又不致於升級太多讓程序發生不兼容錯誤;

 

2). 從本地pod files, pod 'AFNetworking', :path => '~/Documents/AFNetworking'此目錄下一定要有.podspec文檔

 

3). 從git server端pod files

To use the master branch of the repo:

pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :branch => ‘develop’

Or specify a commit:

pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => '082f8319af'

 

4)、 pod 'ShareKit/Facebook' 支持子模塊的導入。

 

5)、Pod install依次做了什么?

步驟:

http://blog.jobbole.com/53365/

 

6)、較優的git倉庫管理

將Podfile & Podfile.lock & workspace放到git倉庫中管理

原因:

Podfile.lock, 保證每個team成員使用的第三方庫是同一個版本的

Workspace, 如果由CocoaPods生成,則沒有必要。如果workspace是自己創建的,就需要。

 

7)、注釋

單行注釋: #

多行注釋:

      =begin    

codes to comment 

   =end

 

5..podspec Syntax

1、pod spec create ‘name’產生一個name.podspec文件,可仔細閱讀此文件,熟悉.podspec語法;

2、pod spec lint ‘name’.podspec 用來build .podspec文件是否有錯。

 

6.支持第三方開發者將CustomSDK pod到自己的工程,如何做?

解決以下幾個問題:

1). 在工程中創建一個.podspec文件,並讓其編譯通過;

編譯.podspec文件使用命令,pod spec lint name. 官方文檔: 這份文檔:http://guides.cocoapods.org/making/making-a-cocoapod.html

2). 將自定義的.podspec納入Cocoa Spec管理;

a. 需github上一個account,並fork cocoa spec;

b. 將更改push到fork cocoa spec responsity上;

c. new pull request -> compare across forks;

3). 處理CustomSDK version update;重復2中的III.

 

7.制作支持安裝第三方靜態庫podspec和podfile

1) 如何制作podspec文件參照OpenSSL:  

https://github.com/krzyzanowskim/OpenSSL

 

2) 如果寫Podfile以支持從本地導入OpenSSL:

例如:pod 'OpenSSL', :path => '../OpenSSL'(此為OpenSSL在本地的路徑),從網上下載的包中,有一個快捷的OpenSSL.podspec文件和OpenSSL-Universal.podspec文件。刪除快捷方式打開的OpenSSL.podspec文件,將OpenSSL-Universal.podspec文件重命名為OpenSSL.podspec,並將此文件中s.name = "OpenSSL-Universal"修改成s.name = "OpenSSL"。

雖然,從理論上可以用pod ‘OpenSSL’, :podspec => '../OpenSSL /OpenSSL-Universal.podspec'方式指定,但是實際操作卻不成功,不知道為什么。

 

8.制作支持subspec的podspec 文件

參照例子ShareKit :

https://github.com/ShareKit

 

9.對CocoaPods文檔查看的支持

link: http://cocoadocs.org

如何將自己寫的代碼產生apple 風格的文檔:

1. 安裝Alcatraz和VVDocumenter-Xcode這兩個xcode插件,

安裝 Alcatraz,link: http://alcatraz.io

可以在此路徑下找到:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins. Relaunch Xcode and type in /// above any code you want to write a document to.

2. Download the link: https://github.com/tomaz/appledoc, 安裝appledoc.

或者brew(unix tool)安裝。安裝方法:cd到appledoc的下載路徑;sudo sh install-appledoc.sh; sudo sh install-appledoc.sh -b /usr/bin -t ~/Library/Application\ Support/appledoc.

3. 可以在終端上輸入appledoc —help查看它的用法。Simple Example:  appledoc ./NoticeBandSDK  --project-name NoticeBandSDK --project-company "mophie-inc" --company-id com.mophie-inc.SDKDoc --output ./,會在當前目錄產生一個txt,告訴你文檔所在路徑。Xcode中所有文檔路徑: ~/Library/Developer/Shared/Documentation/DocSets

 

10.清理pod install配置后的工程

  • 文件清理

      刪除Podfile.lock,workspace,Pods目錄

  • 工程配置清理

      1、打開要清理的工程,選擇Build Phases, delete Manifest.lock & Copy pods Resources & Run script。

      2.Framework&Header search path清理

  • 清理工程添加文件

      選擇工程,到Link Binary With Libraries,刪除libPods.a和類似於libPods***.a的動態庫

 

11.CocoaPods實用網站

 

12. Pod install 開源庫實戰

- pod 'LayerKit'

用pod這個工具導入源碼,其實這個工具做的還不錯,但是如果導入的工程是framework,則目前遇到的就各種出錯了,比如這個LayerKit。所以,如果以后用到的是framework,還是選擇手動導入吧。

如何手動導入LayerKit這Framework?

1. 在與工程文件同級目錄下,創建Framework這個目錄,將LayerKit.Framework拷貝到此目錄下;

2. 將這個目錄添加進工程中;

3. 工程的Framework search path,需要將Framework這個目錄路徑添加進去;

4. 如果做到步驟3便結束,會報這樣的錯誤

dyld: Library not loaded: @rpath/LayerKit.framework/LayerKit Reason: image not found

解決辦法:in the target's General tab, there is an Embedded Binaries field, add framework there, and the crash is resolved.

可參照此鏈接: http://stackoverflow.com/questions/24333981/ios-app-with-framework-crashed-on-device-dyld-library-not-loaded-xcode-6-beta

運行程序時,會有如下打印: 

LayerKit client v0.17.0 loaded

為了找到4步驟中的解決方案,真真是苦了臣妾了,差點完全舍棄掉pod。不過幸好pod做的事情比較多,所以把pod做好的事情,再手動做一篇,太麻煩了。因此,又回到了pod的陣營,只是以后導入framework,我是不打算用它了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM