在項目開發過程當中咱們不可避免的使用到第三方開發庫,這篇文章主要講解了一款類庫管理工具CocoaPods,下面就爲你們分析一下CocoaPods的一種文件格式語法Podspec。html
Podspec規範的描述了一個pod庫的版本,它包括有關應從何處獲取源、要使用什麼文件、應用的構建設置以及其餘通常元數據(如其名稱、版本和描述)的詳細信息。ios
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.c++
在iOS項目下運行pod init
會生成以下文件,相信iOS開發的童鞋對他很是熟悉了,就不在過多的介紹git
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
# 添加網絡庫
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
github
pod spec createsql
pod spec create [
NAME
|https://github.com/USER/REPO
]bash
在當前工做目錄中建立一個名爲PodSpec的PodSpec NAME.podspec。若是傳遞了GitHub網址,則預先填充規範。
網絡
Pod的名稱,定義該庫的名稱,例如:app
s.name = 'AFNetworking' 等等框架
libraries,用戶目標(應用程序)須要連接的系統庫列表,注意是須要鏈接的系統庫列表, 例如在庫中引入了其餘庫文件,可是其餘庫文件又須要某些系統的庫,這時咱們就須要這種方式引入(這個地方在開發Flutter iOS庫文件時坑了我整整快一天了各類第三方庫引用,而後又各類問題)
s.libraries = 'xml2', 'z', 'sqlite3', 'c++'
frameworks,用戶目標須要連接的系統框架列表,注意是須要連接的系統框架列表
s.frameworks = 'QuartzCore', 'CoreData', 'MobileCoreServices', 'CFNetwork', 'CoreGraphics'
dependency, 對其餘Pod或「子規範」的依賴性。依賴關係能夠指定版本要求。~>建議使用樂觀版本指示器,由於它能夠很好地控制版本,而不會過於嚴格。例如, ~> 1.0.1至關於>= 1.0.1結合使用< 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'
上述三、不經常使用
的就是就是今天遇到的坑
更多其餘功能請詳見
:guides.cocoapods.org/syntax/pods…