CocoaPods介紹
CocoaPods是iOS開發(fā)最著名的類庫管理工具,絕大部分有名的開源類庫,都支持CocoaPods。使用CocoaPods可以輕松引入第三方庫,管理其版本,相信iOS大部分開發(fā)者都用過。怎么安裝CocoaPods和在iOS項(xiàng)目中使用CocoaPods,這里就不做介紹了,本篇文章是教大家怎么創(chuàng)建開發(fā)屬于自己的庫(組件),并且使用CocoaPods編譯鏈接靜態(tài)或動(dòng)態(tài)庫,編譯好的動(dòng)態(tài)或靜態(tài)庫就可以添加到項(xiàng)目中使用了。
主要步驟
1. 創(chuàng)建Pod lib模板
打開終端,切換到創(chuàng)建庫的路徑下,輸入命令:
pod lib create 庫名
然后CocoaPods會從github上下載lib模板,需要回答幾個(gè)問題初始化模板,初始化成功會自動(dòng)打開Xcode工程。
2. 編寫lib代碼,或者把寫好的文件添加到項(xiàng)目中
在路徑:項(xiàng)目文件夾/lib名文件夾/Classes/ 中,有個(gè)文件是“ReplaceMe.m”,意思就是把這個(gè)文件替換了,把寫好的庫文件放到這里。
項(xiàng)目文件夾/lib名文件夾/Assets/ 中,用來存放lib需要用到的資源,比如png等等。
3. 編寫 *.podspec文件
在工程目錄下,會有一個(gè)后綴名為“.podspec”的文件,使用文本編輯器打開,或者xcode打開,編輯配置podlib的配置。
4.pod install
打開工程目錄下的Example目錄,這里是lib的例子。在這個(gè)目錄下執(zhí)行pod install 就會把配置好的lib 重新安裝一遍,使用Xcode打開例子,可以編寫lib和運(yùn)行代碼看結(jié)果。
5.驗(yàn)證lib
前面例子編譯通過,調(diào)試完成,則驗(yàn)證lib是否符合pod的標(biāo)準(zhǔn)。打開終端,切換到“.podspec”文件的目錄下,輸入命令pod lib lint
,等待pod驗(yàn)證完成。如果有錯(cuò)誤或者警告都是不允許驗(yàn)證通過的,不過可以通過參數(shù)忽略,下面給出以下 lint 的參數(shù)。
--sources
:指定Repo地址
--allow-warnings
:忽略警告
--use-libraries
:依賴了靜態(tài)庫
6.提交git
驗(yàn)證通過,就到提交git,這一步不能少,要不然打包失敗。首先之前pod創(chuàng)建的lib模板就是git倉庫的,所以我們只需要提交就好了。如果有遠(yuǎn)端git倉庫的,也可以push過去。
之前在編寫.podspec文件的時(shí)候,有一個(gè)參數(shù)是“s.source”,這里的地址可以是本地倉庫的也可以是遠(yuǎn)端倉庫的。
把lib代碼添加到git ------>> commit ------>> 添加tag。
podspec里面的tag,在git上一定要有,要不然找不到。
7.打包
驗(yàn)證通過,則進(jìn)入最后一步打包。這里需要安裝一個(gè)pod插件cocoapods-packager,在終端執(zhí)行命令:gem install cocoapods-packager
,等待安裝完成。
打開終端,切換到“.podspec”文件的目錄下,輸入命令pod package lib名字.podspec
就可以開始打包了,等待打包完成。
pod package lib名字.podspec
后面是可以加參數(shù)的:
--force
:強(qiáng)制覆蓋之前存在的文件
--library
:打包成.a文件
--dynamic
:打包成動(dòng)態(tài)庫
--configuration
:配置選項(xiàng),默認(rèn)為Release
8.lib引用不使用cocoapods的第三方庫(不開源的)
大部分的第三方庫都支持cocoapods,如果引用支持cocoapods的第三方lib,直接*.podspec文件中使用語句s.dependency 第三方庫名
這樣就能很好的解決。
但是當(dāng)我們需要引用不支持cocoapods的第三方庫時(shí),就得需要另外的語句指定,把需要的第三方lib放入到指定的文件夾中。
s.ios.vendored_frameworks = 'RegionCodeSearch/Classes/*.framework' #指定framework
s.ios.vendored_libraries = 'RegionCodeSearch/Classes/*.a' #指定 .a
每次編寫好*.podspec后,都需要重新pod install ,重新打開項(xiàng)目導(dǎo)入頭文件就可以使用。
在使用自己的lib時(shí),需要把lib中引用的其他庫也拖進(jìn)項(xiàng)目中,否則編譯失敗。
歡迎大家交流~