做iOS開發(fā)的人都知道,使用cocoapods來管理三方庫十分的方便撩幽,而且目前有一個很火的概念兜挨,就是使用cocoapods來進行組件化開發(fā),發(fā)布自己的cocoapods葬燎,可以是私有误甚,也可以是公開的,很方便谱净,方法有很多種窑邦,關于發(fā)布自己pod庫推薦一個連接:http://www.code4app.com/blog-847095-1887.html
很長一段時間對于這個cocoapods抹蚀,我都感覺很神秘卦碾,這些流程玩的多了鳍咱,突然間就有了一點自己的體會赃春,記錄下來攒读,供后來者學習與探討匾寝。要看懂這篇文章不需要你有很深的cocopods使用技巧排监,只需要你玩過仇奶,或者探索或嘗試發(fā)布過自己的pod庫即可捻艳。
之前一直學習如何用組件化開發(fā)驾窟,學習了使用cocoapods發(fā)布了自己的pod庫,每次都需要打tag认轨,發(fā)布podspec,更新本地索引文件,等各種復雜的操作绅络,但有一個疑問,實際開發(fā)中需要這么麻煩嗎?如何保證開發(fā)效率呢恩急,如何確保修改pod庫文件后能實時看運行效果呢杉畜,畢竟開發(fā)不是一次就很完美的,而且網上的各種教程都是建立一個自己的pod私有庫衷恭,一個組件一個私有庫此叠,對于個人開發(fā)很不友好,我就一直在思考随珠,如何將發(fā)布pod庫灭袁,打tag,推送等步驟給省略窗看,做到真正的即時修改茸歧,即時看效果。本文主要就是為了解決這些問題而存在的显沈。
首先看下软瞎,我們正常的一個pod庫都有哪些東西。
1.一個.podspec文件
2.你自己寫的庫
開始拉讯,我對于這個.podspec很不理解涤浇,為什么需要這個文件,我們平時使用三方的時候并沒有寫過關于.podspec的文件魔慷,只需要在podfile文件里寫pod 'AFNetworking' 然后pod install即可了只锭,其實還有這種寫法
pod 'ISCommon', :path => '../podspec'
哈哈,我們的重頭戲來了盖彭,這個podspec究竟是干什么的呢纹烹,發(fā)布過pod庫的都知道页滚,這個podspec里面是這樣的
它里面記錄了你的pod庫信息召边,當你發(fā)布你的pod時,你會把你的podspec文件上傳給cocoapods裹驰,而且你的pod文件也是寄存在公共的網站上隧熙,這時你安裝cocoapods在你電腦上時,你電腦里會下載所有公共的podspec文件幻林,然后pod install時會找到相應的podspec文件贞盯,根據文件的信息去拉取pod所在網站上的代碼,然后安裝沪饺。
同樣的躏敢,我們發(fā)布一個私有庫時,我們會將我們的pod庫和podspec文件放在只有經過我們允許后整葡,才能訪問的到的網站上件余,這時我們安裝時,只有可以訪問的這個podspec文件和pod庫的才能安裝成功,其他人則會安裝失敗啼器。
同樣的旬渠,你當你本地新建一個podspec文件后,在podfile文件里指定你的podspec文件的地址端壳,并同時根據podspec里的配置信息能正確的找到對應的pod庫告丢,不管你是否發(fā)布在了cocoapods上面,你都能安裝成功损谦,即你開發(fā)pod庫時岖免,可以在 你的庫后面指定
:path => 'podspec的路徑'
然后pod install即可,此時你安裝后你的pod文件夾下會是這樣的
開發(fā)完成可以直接發(fā)布你的pod庫照捡,然后將:path去掉即可完成你的開發(fā)觅捆。
注意:podspec里的s.source_files 指向實際的pod庫文件地址,且pod庫需要在podspec的同級目錄下麻敌,否則可能出現(xiàn)找不到的問題
參考文章:http://www.reibang.com/p/oZfb8s
附Demo:https://github.com/LeoAiolia/ModulTest