前言
這里主要介紹podspec文件的編輯方法枣宫,涉及到多種情況夭织,文件資源的引用、.a文件的引用等捞蛋,下一篇文章我會(huì)介紹子組件的寫法孝冒,那是需要你已經(jīng)掌握里這里的知識(shí)后采取研究的。
一拟杉、基本的配置
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)用戶協(xié)議
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)支持的平臺(tái)及版本
s.source_files = 'Module/Classes/**/*' #(8)代碼源文件地址庄涡,**/*表示Classes目錄及其子目錄下所有文件,如果有多個(gè)目錄下則用逗號(hào)分開搬设,如果需要在項(xiàng)目中分組顯示穴店,這里也要做相應(yīng)的設(shè)置
#(9)資源文件的路徑,圖片拿穴、音頻等
s.resource_bundles = {
'BunldeName' => ['Module/Assets/*.png','Module/Assets/*']
}
#(10)這個(gè)組件依賴的其他組件或者第三方庫
s.dependency 'Masonry'
s.dependency 'SDWebImage'
end
- (1)組件名稱:這個(gè)就是你組件的名字 沒啥說的
- (2)組件的版本: 這個(gè)版本號(hào)泣洞,當(dāng)驗(yàn)證podspec 的時(shí)候遠(yuǎn)端一定要有;我們可以根據(jù)不同的版本號(hào)拉到不同的代碼
- (3)組件的簡述 :沒啥說的
- (4)用戶協(xié)議:沒啥說的
- (5)郵箱:郵箱默色,沒啥說的
- (6)git的地址: 這個(gè)東西很重要球凰,直接影響到當(dāng)別人用你的組件的時(shí)候 拉的是哪個(gè)倉庫的代碼
- (7)支持的平臺(tái)及版本:沒啥說的
- (8)代碼源文件地址:這個(gè)跟(6)一樣重要,作用耶差不多腿宰,表示別人用你的組件呕诉,拉的是你組件里的哪一部分代碼
- (9)資源文件的路徑: 當(dāng)你的組件里涉及到一些UI上的東西,需要引用一些圖片的時(shí)候酗失,需要把這個(gè)設(shè)置一下义钉;
- (10)這個(gè)組件依賴的其他組件或者第三方庫: 你的組件可能沒有那么純凈,會(huì)依賴一些別人的組件规肴,那你需要在這里說明捶闸,你的組件依賴?yán)锬男〇|西夜畴,比如你寫一個(gè)彈窗,可能依賴了Masonry删壮,那么 你這里就必須要寫s.dependency 'Masonry'
二贪绘、當(dāng)你需要增加一個(gè)環(huán)境變量
這中情況一般很少見,我一般是在創(chuàng)建子組件的時(shí)候才使用央碟。
作用:因?yàn)樵谧咏M件中税灌,一定會(huì)用一些共用的代碼,但是有一些小的細(xì)節(jié)不一樣亿虽,這個(gè)時(shí)候我就會(huì)用 這個(gè)來區(qū)分菱涤,在build 的時(shí)候 放一個(gè)環(huán)境變量進(jìn)去
f.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'FIRST_MODULE=1'}
s.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'SECOND_MODULE=1'}
f 和 s分別代表兩個(gè)子組件,怎么才能這么寫洛勉,下一篇文章再介紹
用的時(shí)候我們在代碼中一般會(huì)判斷這個(gè)變量存不存在粘秆,而不是判斷它是不是 == 1,判斷等于1 是不準(zhǔn)確的
#ifdef FIRST_MODULE
//there is first module do everything you want
#endif
三收毫、pod中引入.a或者.framework
#自己的framework 后面是路徑
s.vendored_frameworks = ['Module/Vendors/*.framework']
#系統(tǒng)的framework
s.frameworks = ['UIKit', 'MapKit']
#自己的.a 后面是路徑
s.vendored_library = 'Module/Classes/SDK/*.a'
#系統(tǒng)的.a
s.libraries = ['xml2.2','sqlite3.0']