在項目開發(fā)過程中我們不可避免的使用到第三方開發(fā)庫录平,這篇文章主要講解了一款類庫管理工具CocoaPods,下面就為大家分析一下CocoaPods的一種文件格式語法Podspec耕驰。
簡介
Podspec規(guī)范的描述了一個pod庫的版本,它包括有關(guān)應(yīng)從何處獲取源效五、要使用什么文件、應(yīng)用的構(gòu)建設(shè)置以及其他一般元數(shù)據(jù)(如其名稱薛夜、版本和描述)的詳細信息枚碗。
A specification describes a version of Pod library. It includes details about where the source should be fetched from, what files to use, the build settings to apply, and other general metadata such as its name, version, and description.
Podfile最基本的用法
在iOS項目下運行pod init
會生成如下文件,相信iOS開發(fā)的童鞋對他非常熟悉了,就不在過多的介紹
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
# 添加網(wǎng)絡(luò)庫
pod 'AFNetworking', '~> 3.2.1'
target 'Demo' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for Demo
end
小技巧:如果想要搜索某個庫,可以使用pod search
,例如:pod search AFNetworking
Podspec語法
1几蜻、如何創(chuàng)建Podspec文件
pod spec create
pod spec create [
NAME
|https://github.com/USER/REPO
]
在當(dāng)前工作目錄中創(chuàng)建一個名為PodSpec的PodSpec NAME.podspec喇潘。如果傳遞了GitHub網(wǎng)址体斩,則預(yù)先填充規(guī)范。
2颖低、根的規(guī)范絮吵,常用的
Pod的名稱,定義該庫的名稱,例如:
s.name = 'AFNetworking'
等等
3、不常用
libraries忱屑,用戶目標(應(yīng)用程序)需要鏈接的系統(tǒng)庫列表蹬敲,注意是需要連接的系統(tǒng)庫列表, 例如在庫中引入了其他庫文件,但是其他庫文件又需要某些系統(tǒng)的庫,這時我們就需要這種方式引入(這個地方在開發(fā)Flutter iOS庫文件時坑了我整整快一天了各種第三方庫引用,然后又各種問題)
s.libraries = 'xml2', 'z', 'sqlite3', 'c++'
frameworks,用戶目標需要鏈接的系統(tǒng)框架列表,注意是需要鏈接的系統(tǒng)框架列表
s.frameworks = 'QuartzCore', 'CoreData', 'MobileCoreServices', 'CFNetwork', 'CoreGraphics'
dependency, 對其他Pod或“子規(guī)范”的依賴性莺戒。依賴關(guān)系可以指定版本要求伴嗡。~>建議使用樂觀版本指示器,因為它可以很好地控制版本脏毯,而不會過于嚴格闹究。例如幔崖, ~> 1.0.1相當(dāng)于>= 1.0.1結(jié)合使用< 1.1食店。同樣, ~> 1.0將匹配1.0赏寇,1.0.1吉嫩,1.1,但不會升級到2.0嗅定。
s.dependency 'MBProgressHUD', '~> 0.5'
vendored_frameworks, 隨Pod一起提供的框架捆綁包的路徑
s.vendored_frameworks = 'A.framework', 'B.framework'
上述3自娩、不常用
的就是就是今天遇到的坑
更多其他功能請詳見
:https://guides.cocoapods.org/syntax/podspec.html#specification