公司的新項目多的不可思議,急需組件化支持我們模塊組裝生成新的App,記錄一下私有庫的制作方法,如有錯誤還請大家?guī)椭赋?/p>
1,先創(chuàng)建一個遠程的spec索引倉庫
我的索引倉庫名為mylib4RepoSpec,github上的創(chuàng)建過程略,然后clone到本地,添加你編輯好的spec文件,后續(xù)會講到這個文件

這這個倉庫主要是存放我們?nèi)蘸笠S護的所有組件的索引文件.spec
2,創(chuàng)建一個組件代碼倉庫
-
2.1 遠程代碼倉庫
image.png - 2.2 克隆到本地
git clone https://github.com/tianyang828/mylib4.git
在倉庫路徑下,生成.podspec文件,使用命令:
pod spec create mylib4.spec
-
2.3 編輯podspec文件,填寫私有庫相關(guān)信息,顧名思義,不細說
image.png -
2.4 然后添加你的組件代碼,放在Classes文件夾下,demo下存放的是你的示例工程,可選擇是否添加
image.png 2.5 把本地組件代碼推到遠端,并打個標(biāo)簽
git add .
git git commit -m '第一次提交'
git pull
git push
//注意tag和podspec文件里的s.version一樣
git tag "0.0.1"
git push —tags
- 2.6 驗證上一步編輯的 .podspec文件是否有錯,出錯的話根據(jù)提示自行修改,在podspec文件所在目錄下執(zhí)行命令:
注:
(1) - -verbose:表示顯示全部的日志信息,建議加上這個,方便判斷錯誤信息;
(2) - -sources:如果我們在podspec里面依賴到一些私有的庫之后,直接進行校驗是會報錯的提示找不到,這里可以加上Spec倉庫的地址告訴CocoaPods找不到的時候去哪里找;
(3) - -allow-warnings:表示允許警告;
(4) - -use-libraries:表示使用靜態(tài)庫或者是framework,這里主要是解決當(dāng)我們依賴一些framework庫后校驗提示找不到庫的時候用到。
pod lib lint --allow-warnings
- 2.7創(chuàng)建私有的索引庫Spec Repo:
pod repo add “自定義名” “spec索引倉庫地址” (文章開始創(chuàng)建的索引庫地址)
這一步做的其實是創(chuàng)建的工作,也就是在 ~/.cocoapods/repo 目錄下添加了一個以你的私有 repo 為名的文件夾,但是并沒有添加 spec 文件。
pod repo push xxxx.podspec
這個命令執(zhí)行之后,本地和遠端的~/.cocoapods/repo都會發(fā)生變化,.pec已經(jīng)添加進去
pod repo add mylib4 https://github.com/tianyang828/mylib4RepoSpec.git
pod repo push mylib4 mylib4.podspec --allow-warnings
打開本地cocopods倉庫,查看本地repo庫(會包含mylib4庫):
open ~/.cocoapods/repos/

查詢本地是否有對應(yīng)的項目庫
pod search mylib4
查看本地pod索引庫
pod repo
3 在項目中使用,編輯podfile

4 更新維護,重新提交代碼,修改spec文件描述并提交
1.重新提交代碼:
git add .
git commit -m ‘更新了***’
git push origin master2.打tag,同時改spec描述文件:
git tag 0.0.2
git push –tags3.更新spec文件到索引庫
pod repo add mylib4 https://github.com/tianyang828/mylib4RepoSpec.git
pod repo push mylib4 mylib4.podspec --allow-warnings
- 其他問題及擴展:
1.也有使用如下命令的方式創(chuàng)建項目的
pod lib create mylib5
2.pod repo push 失敗可能原因,github的主分支由master變成了main,pod在推送到遠端索引時可能出錯,所以可以在創(chuàng)建遠端倉庫的時候,把主分支名字改為master


創(chuàng)建帶示例工程的spec 文件夾 pod lib create HTCourseDownloadLib
刷新本地索引 pod repo update /Users/XXXX/.cocoapods/repos/huatuop-open-ios1-htpodspecs
git remote add origin git@gitlab.XXXX.com:open-ios1/HTCourseDownloadLib.git
git push origin master


