iOS OC CocoaPods搭建私有倉庫
靜態庫和動態庫的存在的形式
- 靜態庫:.a 和 .framework 為文件后綴名。
- 動態庫:以.tbd(之前叫.dylib) 和 .framework 為文件后綴名。(系統直接提供給我們的framework都是動態庫!)
靜態庫和動態庫的區別
- 靜態庫:鏈接時,靜態庫會被完整地復制到可執行文件中,被多次使用就有多份冗余拷貝
- 動態庫:鏈接時不復制,程序運行時由系統動態加載到內存,供程序調用,系統只加載一次,多個程序共用,節省內存
搭建私有倉庫
目的
(1)復用性更好,快速構建移植核心功能 "模塊化"
(2)加快編譯速度 "提高啟動效率" :
每當我們build一個工程項目時,系統總是會先將所有源代碼編譯為目標文件,再將目標文件鏈接為可執行程序。即使是我們改變其中某一個文件中的源代碼,而其他文件沒有改變也是如此。因此為了加快編譯速度,有些文件將不再以源代碼的形式提供,而是可以將一部分目標文件先集中起來形成一個靜態庫。這樣就可以對這部分文件略過編譯而直接進行鏈接從而加快編譯的速度。
(3)代碼安全
.a 形式的靜態鏈接庫文件 配合.h只提供方法聲明 不公開代碼實現 : .a文件是一個純二進制文件
.framework 生成私有倉庫
.a + .h + sourceFile = .framework
步驟
(1)先創建本地私有倉庫,創建完再推遠端 (?? 先本地后遠端 很重要:錯誤坑 就是 先創建了遠程倉庫,并且設置了OC 忽略文件 會屏蔽Pod 相關的文件,這里不應該寫忽略文件,就是整體全提交到遠端,改進:刪除遠端倉庫 重新執行 (1))
pod lib create HFTestPirvate
命令行執行上面這句代碼 本地創建 一個 模板工程 叫 HFTestPrivate 自主做出命令提示選擇
(2)功能文件拖入Classes文件 (??添加文件時候 默認是Example 為目錄下 ,需要手動切換主目錄 才能找到 Classes文件夾,也可以從Finder 中直接查找一下看看這個文件夾在哪個層級,無需關聯target)


(3) 在Example 層文件夾 執行 pod install
這樣在 Development Pods 中就生成了目標私有庫文件 ,并且自動關聯了樣例工程,可以用來測試調試
Development Pods 中 冗余的ReplaceMe.m 文件可以手動刪除
(4)HFTestPirvate.podspec 中的 配置是否需要主動調試
1.版本號注意是否需要修改 ,每次迭代升級 就靠它 ??
2.s.homepage = 'https://github.com/xxx/HFTestPirvate' ??未來遠程倉庫
3. s.source = { :git => 'https://github.com/xxx/HFTestPirvate.git',:tag => s.version.to_s }??未來遠程倉庫下載源
(5)
(5.1)HFTestPirvate 倉庫提交到遠程 :
(1)創建添加遠程倉庫:git remote add origin https://github.com/xxx/HFTestPirvate.git
(2)本地HFTestPirvate 提交到遠程 : git push -u origin master
(5.2) 給HFTestPrivate 打tag
(1) HFTestPirvate.podspec 文件中 是 s.version = '0.1.1' 打tag 也必須是 0.1.1
git tag 0.1.1
git push --tags
(5.3) 創建遠程索引倉庫 Repo_cocoapods_specs
(1) git remote add origin https://github.com/xxx/Repo_cocoapods_specs.git
(2) cocoapods本地倉庫路徑,添加一個自己的遠程索引庫
~/.cocoapods/repos
pod repo add Repo_cocoapods_specs https://github.com/xxx/Repo_cocoapods_specs.git
(3) 建立關聯 把索引倉庫 和 私有倉庫建立關聯
pod repo push Repo_cocoapods_specs HFTestPirvate.podspec --sources=https://github.com/xxx/HFTestPirvate.git,https://github.com/CocoaPods/Specs --verbose --allow-warnings
至此,可以在遠程索引倉庫里面看見 HFTestPirvate.podspec 版本索引
(6) 升級一個0.1.2
方法模塊升級功能 修改好版本號
執行(5.1.2) 提交到私有遠程倉庫
執行(5.2)
執行(5.3.3)
至此,可以在項目里面 重新pod install 則會下載最新的0.1.2版本
??備注 :根據(5.3)遠程索引倉庫 在項目里面需要添加私有倉庫源
source 'https://github.com/xxx/Repo_cocoapods_specs.git'
然后
pod 'HFTestPirvate'
參考
(1)https://zhuanlan.zhihu.com/p/217631955
(2) http://www.cocoachina.com/articles/23359
posted on 2021-07-08 16:36 ACM_Someone like you 閱讀(304) 評論(0) 收藏 舉報
浙公網安備 33010602011771號