pod引用本地庫

1.大體描述

項(xiàng)目希望應(yīng)用App的業(yè)務(wù)代碼分成組件, App內(nèi)部只保留少量的代碼. 所以講App/目錄下: Chat, Common, Information, Mine, Score作為本地庫.(也可以在本機(jī)的別的目錄下,如desktop) (見圖1)
其實(shí)感覺Common的有些App私有的東西,可以放在App里邊,不需要作為庫

最后項(xiàng)目的目錄結(jié)構(gòu)如下 (見圖2)
紅框1: 代表app的項(xiàng)目文件, 只有基本的配置文件+AppDelegate
紅框2:本地pod庫
紅框3:遠(yuǎn)程pod庫
注意: 因?yàn)閷?dǎo)入了本地pod庫, 所以自動(dòng)生成了紅框2的"DevelopmentPods"目錄

圖1.png
圖2.png

2.podfile文件

# git庫
pod 'AFNetworking', '3.2.1'
pod 'MJRefresh', '3.2.0'
pod 'MJExtension', '3.1.0'
# svn庫
pod 'LoginLib', :svn =>'https://xxx/trunk/LoginLib'
pod 'LoginKit', :svn =>'https://xxx/trunk/LoginKit'
# 本地文件
pod 'Common', :path => './xxx/App/Common/'
pod 'Score', :path => './xxx/App/Score/'
pod 'Chat', :path => './xxx/App/Chat/'
pod 'Mine', :path => './xxx/App/Mine/'
pod 'Information', :path => './xxx/App/Information/'

3.podspec文件配置

3.1Chat

  spec.prefix_header_file = 'Chat/Chat.h'
  spec.source_files  = 'Chat', 'Chat/**/*.{h,m}' //代表任何子孫目錄的.h.m文件都導(dǎo)入

  spec.resource_bundles = {
    'ChatBundle' => [ 'Chat/Resources/**/*.xcassets',
                      'Chat/Resources/**/*.xib' ]
  }

  spec.frameworks = 'Foundation', 'UIKit', 'CoreLocation', 'CoreGraphics', 'QuartzCore', 'OpenGLES', 'ImageIO', 'SystemConfiguration', 'Security'
  spec.libraries = 'c++', 'z', 'sqlite3', 'icucore'

  spec.dependency 'Common'//Chat依賴Common庫
  spec.dependency 'Masonry'

上邊podspec的作用, 在項(xiàng)目中的體現(xiàn)(見圖3)
注意: 有些文件夾圖標(biāo)左下角沒有三角形圖標(biāo)

如圖3.png

3.2Common

spec.prefix_header_file = 'Common/Common.h'
  
  spec.source_files  = 'Common/*' //*代表向下一層所有文件, **不但包括子文件也包括孫(孫孫\...)文件
  
  spec.resource_bundles = { 'CommonBundle' => ['Common/Resources/*.xcassets',
                                            'Common/Resources/*.xib',
                                            'Common/Util/UI/KKFont(字體)/src/*.{ttf,OTF}']
  }

  spec.frameworks = 'Foundation', 'UIKit', 'CoreGraphics', 'ImageIO', 'SystemConfiguration', 'Security'
  spec.libraries = 'c++', 'z', 'sqlite3'
 
  spec.dependency 'Bugly'
  spec.dependency 'AMapLocation'
  spec.dependency 'AMapSearch'

####################### subspec ########################
  spec.subspec 'Header' do |header|
    header.source_files = 'Common/Header/**/*.{h,m}'
  end
  
  spec.subspec 'Base' do |base|
    base.source_files = 'Common/Base/**/*.{h,m}'
  end

  spec.subspec 'EventPoint' do |eventPoint |
    eventPoint.source_files = 'Common/EventPoint/**/*.{h,m}'
  end

  spec.subspec 'Util' do |util|
    util.source_files = 'Common/Util/*'
    
    util.subspec 'UI' do |ui|
      ui.source_files = 'Common/Util/UI/**/*.{h,m}'
    end
    
    util.subspec 'Foundation' do |foundation|
      foundation.source_files = 'Common/Util/Foundation/**/*'
      
      foundation.subspec 'NSObjectSafe' do |safe|
        safe.requires_arc = false
        safe.source_files = 'Common/Util/Foundation/NSObjectSafe/**/*.{h,m}'
      end

    end
    
  end
  
  spec.subspec 'Account' do |account|
    account.source_files = 'Common/Account/*.{h,m}'
  end
  
  spec.subspec 'Router' do |router|
    router.source_files = 'Common/Router/*.{h,m}'
  end
  
  spec.subspec 'Configuration' do |configuration|
    configuration.source_files = 'Common/Configuration/*'
    
    configuration.subspec 'Network' do |network|
      network.source_files = 'Common/Configuration/Network/*.{h,m}'
    end
    
    configuration.subspec 'SDK' do |sdk|
      sdk.source_files = 'Common/Configuration/SDK/*.{h,m}'
    end
    
  end

end

podspec中設(shè)置了subspec的目錄, 都變成了左下角帶小三角的樣子, 沒設(shè)置的不帶

圖4.png

3.3換種方式寫Common

 spec.prefix_header_file = 'Common/Common.h'
  
  spec.source_files  = 'Common', 'Common/**/*.{h,m}' //Common下的所有.h.m文件
  
  spec.resource_bundles = { 'CommonBundle' => ['Common/Resources/*.xcassets',
                                            'Common/Resources/*.xib',
                                            'Common/Util/UI/KKFont(字體)/src/*.{ttf,OTF}']
  }

  spec.frameworks = 'Foundation', 'UIKit', 'CoreGraphics', 'ImageIO', 'SystemConfiguration', 'Security'
  spec.libraries = 'c++', 'z', 'sqlite3'
  
  spec.dependency 'Bugly'
  spec.dependency 'AMapLocation'

  ####################### subspec ########################

  spec.subspec 'NSObjectSafe' do |safe|
    safe.requires_arc = false
    safe.source_files = 'Common/**/NSObjectSafe/*.{h,m}'
  end

  ####################### subspec ########################

spec.source_files和subspec還可以這么寫
這里的subspec不起子目錄作用, 只是指定NSObjectSafe目錄下的.h.m文件不要求用ARC

圖5.png

3.4總結(jié)

1.注意例子中spec.source_files的寫法
2.注意subspec的寫法, 3.2中在作為遠(yuǎn)程庫時(shí)候, 設(shè)置了subpec的目錄還會(huì)以文件夾目錄的形式出現(xiàn)(帶小三角), 而3.1和3.3的粗暴寫法會(huì)將主目錄(Chat/Common)下的所有.h.m導(dǎo)入進(jìn)去其中,而沒有子目錄。
3.requires_arc: 可以對(duì)文件作ARC設(shè)定

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舔示,一起剝皮案震驚了整個(gè)濱河市充易,隨后出現(xiàn)的幾起案子手蝎,更是在濱河造成了極大的恐慌愤诱,老刑警劉巖占婉,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赃阀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡趾痘,警方通過查閱死者的電腦和手機(jī)慢哈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來永票,“玉大人卵贱,你說我怎么就攤上這事÷录” “怎么了键俱?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長世分。 經(jīng)常有香客問我编振,道長,這世上最難降的妖魔是什么臭埋? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任踪央,我火速辦了婚禮,結(jié)果婚禮上瓢阴,老公的妹妹穿的比我還像新娘畅蹂。我一直安慰自己,他們只是感情好荣恐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布液斜。 她就那樣靜靜地躺著,像睡著了一般叠穆。 火紅的嫁衣襯著肌膚如雪旗唁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天痹束,我揣著相機(jī)與錄音,去河邊找鬼讶请。 笑死祷嘶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夺溢。 我是一名探鬼主播论巍,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼风响!你這毒婦竟也來了嘉汰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤状勤,失蹤者是張志新(化名)和其女友劉穎鞋怀,沒想到半個(gè)月后双泪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡密似,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年焙矛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片残腌。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡村斟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抛猫,到底是詐尸還是另有隱情蟆盹,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布闺金,位于F島的核電站逾滥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏掖看。R本人自食惡果不足惜匣距,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哎壳。 院中可真熱鬧毅待,春花似錦、人聲如沸归榕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刹泄。三九已至外里,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間特石,已是汗流浹背盅蝗。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姆蘸,地道東北人墩莫。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像逞敷,于是被迫代替她去往敵國和親狂秦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355