cocoapods使用教程1:創(chuàng)建自己的庫(靜態(tài)動態(tài)庫)

CocoaPods介紹

CocoaPods是iOS開發(fā)最著名的類庫管理工具,絕大部分有名的開源類庫,都支持CocoaPods。使用CocoaPods可以輕松引入第三方庫,管理其版本,相信iOS大部分開發(fā)者都用過。怎么安裝CocoaPods和在iOS項目中使用CocoaPods,這里就不做介紹了,本篇文章是教大家怎么創(chuàng)建開發(fā)屬于自己的庫(組件),并且使用CocoaPods編譯鏈接靜態(tài)或動態(tài)庫,編譯好的動態(tài)或靜態(tài)庫就可以添加到項目中使用了。

主要步驟

1. 創(chuàng)建Pod lib模板

打開終端,切換到創(chuàng)建庫的路徑下,輸入命令:

pod lib create 庫名

然后CocoaPods會從github上下載lib模板,需要回答幾個問題初始化模板,初始化成功會自動打開Xcode工程。


@初始化lib模板

2. 編寫lib代碼,或者把寫好的文件添加到項目中

在路徑:項目文件夾/lib名文件夾/Classes/ 中,有個文件是“ReplaceMe.m”,意思就是把這個文件替換了,把寫好的庫文件放到這里。
項目文件夾/lib名文件夾/Assets/ 中,用來存放lib需要用到的資源,比如png等等。

@添加lib代碼

3. 編寫 *.podspec文件

在工程目錄下,會有一個后綴名為“.podspec”的文件,使用文本編輯器打開,或者xcode打開,編輯配置podlib的配置。

@編輯podspec文件

4.pod install

打開工程目錄下的Example目錄,這里是lib的例子。在這個目錄下執(zhí)行pod install 就會把配置好的lib 重新安裝一遍,使用Xcode打開例子,可以編寫lib和運行代碼看結(jié)果。

5.驗證lib

前面例子編譯通過,調(diào)試完成,則驗證lib是否符合pod的標準。打開終端,切換到“.podspec”文件的目錄下,輸入命令pod lib lint,等待pod驗證完成。如果有錯誤或者警告都是不允許驗證通過的,不過可以通過參數(shù)忽略,下面給出以下 lint 的參數(shù)。
--sources:指定Repo地址
--allow-warnings:忽略警告
--use-libraries:依賴了靜態(tài)庫

@驗證lib

6.提交git

驗證通過,就到提交git,這一步不能少,要不然打包失敗。首先之前pod創(chuàng)建的lib模板就是git倉庫的,所以我們只需要提交就好了。如果有遠端git倉庫的,也可以push過去。
之前在編寫.podspec文件的時候,有一個參數(shù)是“s.source”,這里的地址可以是本地倉庫的也可以是遠端倉庫的。
把lib代碼添加到git ------>> commit ------>> 添加tag。
podspec里面的tag,在git上一定要有,要不然找不到。

@提交git

7.打包

驗證通過,則進入最后一步打包。這里需要安裝一個pod插件cocoapods-packager,在終端執(zhí)行命令:gem install cocoapods-packager,等待安裝完成。

打開終端,切換到“.podspec”文件的目錄下,輸入命令pod package lib名字.podspec就可以開始打包了,等待打包完成。
pod package lib名字.podspec后面是可以加參數(shù)的:
--force:強制覆蓋之前存在的文件
--library:打包成.a文件
--dynamic:打包成動態(tài)庫
--configuration:配置選項,默認為Release

@打包完成

8.lib引用不使用cocoapods的第三方庫(不開源的)

大部分的第三方庫都支持cocoapods,如果引用支持cocoapods的第三方lib,直接*.podspec文件中使用語句s.dependency 第三方庫名這樣就能很好的解決。
但是當我們需要引用不支持cocoapods的第三方庫時,就得需要另外的語句指定,把需要的第三方lib放入到指定的文件夾中。

s.ios.vendored_frameworks = 'RegionCodeSearch/Classes/*.framework'    #指定framework
s.ios.vendored_libraries = 'RegionCodeSearch/Classes/*.a'    #指定 .a

每次編寫好*.podspec后,都需要重新pod install ,重新打開項目導入頭文件就可以使用。
在使用自己的lib時,需要把lib中引用的其他庫也拖進項目中,否則編譯失敗。

image.png

歡迎大家交流~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容