Cocoapods是非常好用的一個iOS
依賴管理工具钟沛,使用它可以方便的管理和更新項目中所使用到的第三方庫闷叉,以及將自己的項目中的公共組件交由它去管理。
前言
創(chuàng)建一個開源pod
庫医增,需要注冊CocoaPods
奕纫,終端執(zhí)行:
pod trunk register 郵箱地址 '用戶名' --verbose
這里我們一般使用github
郵箱和用戶名, 然后在你的郵箱中會收到確認郵件, 在瀏覽器中點擊鏈接確認即注冊成功署惯;
查看自己的注冊信息又官,以后當你有了自己的開源Pod庫延刘,也可以用此方式隨時查看自己發(fā)布過的Pods
;終端執(zhí)行:
pod trunk me
使用Cocoapods創(chuàng)建私有的podspec庫包含以下幾個步驟:
- 創(chuàng)建并設置一個私有的
Spec Repo
- 創(chuàng)建
Pod
的所需要的項目工程文件六敬,并且有可訪問的項目版本控制地址碘赖。 - 創(chuàng)建
pod
所對應的podspec
文件 - 本地測試配置好的
podspec
文件是否可用 - 向私有的
Spec Repo
中提交podspec
- 在個人項目中的
Podfile
中增加剛剛制作好的pod
并使用 - 更新維護
podspec
1. 創(chuàng)建私有 Spec Repo
Spec Repo
是所有的Pods
的一個索引,就是一個容器,所有公開的Pods
都在這個里面普泡,他實際是一個Git
倉庫 remote端 在GitHub
上播掷,但是當你使用了Cocoapods
后他會被clone
到本地的~/.cocoapods/repos
目錄下,可以進入到這個目錄看到master
文件夾就是這個官方的Spec Repo
了.
創(chuàng)建一個類似于 master
的私有 Spec Repo
- git 上創(chuàng)建私有庫索引庫撼班,得到地址如下:
git@gitlab.**.com:**/**/specs.git
- 在本地添加一個自己的遠程索引庫歧匈,
地址為上面創(chuàng)建的私有庫索引庫地址
pod repo add **-specs https://**.com:**/**/specs.git
執(zhí)行成功后在 ~/.cocoapods/repos
目錄下可以看到 **-specs
這個目錄.
2. 創(chuàng)建Pod項目工程文件
如果是有現(xiàn)有的組件項目,并且在 Git
的版本管理下砰嘁,那么這一步就算完成了件炉,可以直接進行下一步了.
使用 pod
創(chuàng)建 Pod
項目, 相關的文檔介紹是Using Pod Lib Create
-
先
cd
到要創(chuàng)建項目的目錄,然后 Terminal 執(zhí)行:pod lib create 項目名稱
之后他會問你幾個問題:
1.你想使用哪種語言
2.是否需要一個例子工程般码;
3.選擇一個測試框架妻率;
4.是否基于View測試乱顾;
5.類的前綴板祝;
這幾個問題的具體介紹可以去看官方文檔.
問完這幾個問題他會自動執(zhí)行pod install
命令創(chuàng)建項目并生成依賴。
接下來就是向 Pod
文件夾中添加庫文件和資源走净,并配置 podspec
文件券时,我把共有組件放入 Pod/Classes
中,然后進入Example
文件夾執(zhí)行 pod update
命令伏伯,再打開項目工程可以看到剛剛添加的組件已經(jīng)在 Pods
子工程下 Development Pods/BitautoTool
下了.
PS:這里需要注意的是每當你向
Pod
中添加了新的文件或者以后更新了podspec
的版本都需要重新執(zhí)行一遍pod update
命令
測試無誤后需要將該項目添加并推送到遠端倉庫.
因為 podspec
文件中獲取 Git
版本控制的項目需要 tag
號橘洞,所以我們需要打上一個 tag
.
然后開始編輯 podspec
文件,沒有涉及到的字段可以去官方文檔查閱.
編輯完 podspec
文件后驗證這個文件是否可用说搅,詳情見 CocoaPods創(chuàng)建公有pod庫
3. 創(chuàng)建podspec文件
如果從 第2步跳過來 的(否則跳過此步)炸枣,已經(jīng)有了現(xiàn)成的項目,那么就需要給這個項目創(chuàng)建一個 podspec
文件弄唧,創(chuàng)建它需要執(zhí)行 Cocoapods
的另外一個命令适肠,官方文檔,Terminal 執(zhí)行:
pod spec create podspec名稱 git@**.com:WP/APP/**.git
執(zhí)行完之后候引,就創(chuàng)建了一個 podspec
文件侯养,他其中會包含很多內(nèi)容,可以按照我之前介紹的進行編輯澄干,沒用的刪掉逛揩。編輯完成之后使用驗證命令驗證一下,詳情見 CocoaPods創(chuàng)建公有pod庫
驗證無誤就可以進入下一步了.
4. 本地測試podspec文件
我們可以創(chuàng)建一個新的項目麸俘,在這個項目的 Podfile
文件中直接指定剛才創(chuàng)建編輯好的 podspec
文件辩稽,看是否可用。 在 Podfile
中我們可以這樣編輯从媚,有兩種方式:
platform :ios, '8.0'
pod 'BitautoTool', :path => '/Users/**/Documents/BitautoTool' # 指定路徑
pod 'BitautoTool', :podspec => '/Users/**/Documents/BitautoTool/BitautoTool.podspec' # 指定podspec文件
然后執(zhí)行 pod install
命令安裝依賴逞泄,打開項目工程,可以看到庫文件都被加載到 Pods
子項目中了,不過它們并沒有在Pods目錄下炭懊,而是跟測試項目一樣存在于 Development Pods/BitautoTool
中并级,這是因為我們是在本地測試,而沒有把 podspec
文件添加到Spec Repo
中的緣故.
5. 向Spec Repo提交podspec
向私有 Spec Repo
提交 podspec
只需要一個命令
pod repo push bitauto-specs BitautoTool.podspec --allow-warnings --use-libraries --verbose --no-clean --skip-import-validation
前面是本地
Repo
名字侮腹,后面是podspec
名字
--use-libraries:使用libraries和frameworks
--allow-warnings:忽略警告
--verbose:詳細輸出
--skip-import-validation:lint 將跳過驗證 pod 是否可以導入
完成之后這個組件庫就添加到我們的私有 Spec Repo
中了嘲碧,可以進入到 ~/.cocoapods/repos/bitauto-specs
目錄下查看。
再去看我們的 Spec Repo
遠端倉庫父阻,也有了一次提交愈涩,這個podspec
也已經(jīng)被 Push
上去了。
至此加矛,我們的這個組件庫就已經(jīng)制作添加完成了履婉,使用 pod search
命令就可以查到我們自己的庫了。
更新庫的時候如果提示找不到本地庫斟览,終端執(zhí)行以下命令:
git reset --hard
然后再執(zhí)行
pod repo push 本地倉庫名 **.podspec
刪除一個私有 Spec Repo
毁腿,
pod repo remove bitauto-specs
這樣這個 Spec Repo
就在本地刪除了袭灯,我們還可以通過以下命令加回來
pod repo add bitauto-specs git@**.com:WP/APP/**.git
如果我們要刪除私有 Spec Repo
下的某一個 podspec
怎么操作呢掩幢,此時無需借助 Cocoapods
,只需要 cd
到~/.cocoapods/repos/bitauto-specs
目錄下苛坚,刪掉庫目錄
rm -Rf BitautoTool
然后在將 Git
的變動 push
到遠端倉庫即可
git add --all .
git ci -m "remove unuseful pods"
git push origin master
升級 Xcode14+
后執(zhí)行 pod lib lint
報錯
- 修改
podspec
:
- 修改
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
-
pod lib lint
添加
-
--skip-import-validation
- m1
sudo arch -arm64 gem install ffi