前言
這里主要介紹podspec文件的編輯方法,涉及到多種情況,文件資源的引用、.a文件的引用等,下一篇文章我會介紹子組件的寫法,那是需要你已經掌握里這里的知識后采取研究的。
一、基本的配置
Pod::Spec.new do |s|
s.name = 'Module' #(1)組件的名稱
s.version = '1.0.9' #(2)組件的版本
s.summary = ModuleSummary' #(3)組件的簡述
s.homepage = 'http://192.168.0.1/Module'
s.license = { :type => 'MIT', :file => 'LICENSE' } #(4)用戶協議
s.author = { 'you' => 'your_email' } #(5)郵箱
s.source = { :git => 'http://192.168.0.1/Module.git', :tag => s.version.to_s } #(6)git的地址
s.ios.deployment_target = '8.0' #(7)支持的平臺及版本
s.source_files = 'Module/Classes/**/*' #(8)代碼源文件地址,**/*表示Classes目錄及其子目錄下所有文件,如果有多個目錄下則用逗號分開,如果需要在項目中分組顯示,這里也要做相應的設置
#(9)資源文件的路徑,圖片、音頻等
s.resource_bundles = {
'BunldeName' => ['Module/Assets/*.png','Module/Assets/*']
}
#(10)這個組件依賴的其他組件或者第三方庫
s.dependency 'Masonry'
s.dependency 'SDWebImage'
end
- (1)組件名稱:這個就是你組件的名字 沒啥說的
- (2)組件的版本: 這個版本號,當驗證podspec 的時候遠端一定要有;我們可以根據不同的版本號拉到不同的代碼
- (3)組件的簡述 :沒啥說的
- (4)用戶協議:沒啥說的
- (5)郵箱:郵箱,沒啥說的
- (6)git的地址: 這個東西很重要,直接影響到當別人用你的組件的時候 拉的是哪個倉庫的代碼
- (7)支持的平臺及版本:沒啥說的
- (8)代碼源文件地址:這個跟(6)一樣重要,作用耶差不多,表示別人用你的組件,拉的是你組件里的哪一部分代碼
- (9)資源文件的路徑: 當你的組件里涉及到一些UI上的東西,需要引用一些圖片的時候,需要把這個設置一下;
- (10)這個組件依賴的其他組件或者第三方庫: 你的組件可能沒有那么純凈,會依賴一些別人的組件,那你需要在這里說明,你的組件依賴里哪些東西,比如你寫一個彈窗,可能依賴了Masonry,那么 你這里就必須要寫s.dependency 'Masonry'
二、當你需要增加一個環境變量
這中情況一般很少見,我一般是在創建子組件的時候才使用。
作用:因為在子組件中,一定會用一些共用的代碼,但是有一些小的細節不一樣,這個時候我就會用 這個來區分,在build 的時候 放一個環境變量進去
f.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'FIRST_MODULE=1'}
s.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'SECOND_MODULE=1'}
f 和 s分別代表兩個子組件,怎么才能這么寫,下一篇文章再介紹
用的時候我們在代碼中一般會判斷這個變量存不存在,而不是判斷它是不是 == 1,判斷等于1 是不準確的
#ifdef FIRST_MODULE
//there is first module do everything you want
#endif
三、pod中引入.a或者.framework
#自己的framework 后面是路徑
s.vendored_frameworks = ['Module/Vendors/*.framework']
#系統的framework
s.frameworks = ['UIKit', 'MapKit']
#自己的.a 后面是路徑
s.vendored_library = 'Module/Classes/SDK/*.a'
#系統的.a
s.libraries = ['xml2.2','sqlite3.0']