眾所周知 當一個app項目足夠大時 每個功能點細分出來 可以分成多個子app 例如美團 則是由 美團外賣 貓眼電影 ··· 等等組成? 。為了更好的管理應用工程 iOS項目 一般采用的pod組件化解決方案 比較著名的有蘑菇街組件化之路
本文只講解一下 pod組件化執(zhí)行步驟
組件化大體思路

框架說明
繼續(xù)集成:一個主工程(殼工程),包含所有的內(nèi)容(整個項目),用于發(fā)包或打包測試。
基礎(chǔ)組件: 不依賴其他任何組件,獨立完成功能。主要有:與業(yè)務無法的功能(如string或data的加密,category的封裝)對第三方庫的封裝(如AFNetworking,SDWebImage的封裝)
業(yè)務公用組件:依賴基礎(chǔ)組件或UIKit等系統(tǒng)組件,創(chuàng)建業(yè)務共同使用的功能(如分享,支付,網(wǎng)絡訪問)
中間組件:連接業(yè)務公用組件和業(yè)務組件,及業(yè)務組件之間的互相調(diào)用。(如Mediator的組件)
業(yè)務組件:單獨的業(yè)務功能,不依賴其他業(yè)務組件。
組件化流程
1.在git庫中創(chuàng)建自己的代碼庫和pod文件依賴庫?記得添加LICENSE文件 我這里用了開源中國 碼云 git庫

2. 把代碼庫git clone到本地? 這里借用了SourceTree工具


執(zhí)行pod repo addJZBLib_iOShttps://git.oschina.net/jzbwlkj/JZBLib_podspecs.git

3 創(chuàng)建一個demo 用來演示組件的用法 創(chuàng)建完挪到chone到本地的代碼庫中

4 把自己寫的組件git庫的最外層 必須保證運行無誤

5 創(chuàng)建pod所對應的podspec文件? 終端cd到本地git代碼庫pod spec create JZBLib_iOS 創(chuàng)建完成后 用xcode查看(把文件拖到Xcode 即可)


6 把里邊的內(nèi)容都刪了 復制一套模版即可? 里邊內(nèi)容不明白啥意思的自行百度

s.name= 'JZBLib_iOS'
s.version????????? = '0.0.1'
s.summary????????? = 'ios
基礎(chǔ)庫
'
s.description????? = <<-DESC
TODO: Add long description of the pod here.
DESC
s.homepage ??????? = '
https://git.oschina.net/jzbwlkj/JZBLib_iOS'
# s.screenshots ??? = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license????????? = { :type => 'MIT', :file => 'LICENSE' }
s.author ????????? = { 'xs' =>'986852522@qq.com' }
s.source ????????? = { :git => 'https://git.oschina.net/jzbwlkj/JZBLib_iOS.git', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/'
s.ios.deployment_target = '8.0'
s.source_files = 'JZBLib_iOS/*'
s.source_files = 'JZBLib_iOS/**/*'
s.dependency 'Mantle', '~> 2.1.0'
s.dependency 'YYCache', '~> 1.0.4'
s.dependency 'YYCategories', '~> 1.0.4'
s.dependency 'FLKAutoLayout', '~> 1.0.0'
s.dependency 'pop', '~> 1.0'
s.dependency 'SVProgressHUD', '~> 2.0.3'
s.dependency 'AFNetworking', '~> 3.1.0'
end
7 ?在git倉庫中創(chuàng)建版本0.01版本 跟podspec文件對應 把代碼上傳到git代碼庫
8?cd到本地代碼庫pod lib lint --allow-warnings查看版本庫檢查是否存在

9 pod spec lint --use-libraries繼續(xù)監(jiān)測spec合法性
10 pod repo push?JZBLib_podspecsJZBLib_iOS.podspec把space文件傳到自己創(chuàng)建的space倉庫
11 pod searchJZBLib_iOS

參考網(wǎng)址
1http://www.itdecent.cn/p/d6a592d6fced