iOS模塊化實踐 -- 利用CocoaPods拆分項目

Cal35Y 8年前發布 | 14K 次閱讀 CocoaPods Git iOS開發 移動開發

準備工作

  • 安裝好XCode
  • 配置好CocoaPods,并且可以pod update 以及 pod install 成功
  • 已經獲得CocoaPods的Repo的地址,以及對應pod的Git地址(這里以gitLab為例)
  • 涉及到的所有操作,請盡量在Terminal中進行,包括CocoaPods的相關操作(CocoaPods官方客戶端無效)

私有Spec Repo

所謂Spec Repo,就是Pods的索引。一旦在podfile中設置source為某個私有repo的git地址,在進行pod update的時候就會去這個repo中進行檢索,如果檢索到對應的pod,會讀取該Pod的podspec從而進行安裝。

一個Spec Repo的目錄結構如下:

Spec Repo 目錄

之后我們去GitLab上新建一個相應的Repo地址,之后添加repo到本地。

pod repo add [Private Repo Name] [GitHub HTTPS clone URL]

pod repo add realTimeBusCocoaRepo https://gitlab.com/iosCocoaPods4CMS/iOS_Cocoapods_Repo.git</pre>

成功后可以進入 ~/.cocoapods/repos 目錄下查看 realTimeBusCocoaRepo 這個目錄了。

創建Pod項目工程文件

這里建議通過CocoPods的官方命令來進行Pod項目的創建,以測試項目helloCMSPod為例,命令如下:

pod lib create helloCMSPod

不出意外地話,會提問你四個問題:

1.What language do you want to use?? [ Swift / ObjC ]

2.Would you like to include a demo application with your library? [ Yes / No ]

3.Which testing frameworks will you use? [ Specta / Kiwi / None ]

4.Would you like to do view based testing? [ Yes / No ]

5.What is your class prefix?</pre>

這里我分別選擇了ObjC、Yes、None、Yes、CTDemo,之后會自動打開項目。

因為選擇了View based testing,XCode8以上版本會檢測到swift版本落后,邀請你升級,這時候可升可不升。

此時的目錄樹結構如下:

然后就是去新建好的項目里盡情的揮霍了:)

此時記得將所有更改放到Classes文件夾之下,然后在Example文件下執行 pod update,則可發現新的文件已經出現在項目工程的pods文件夾之下了。

之后要做的就是把庫同步到Git上去了。這時候需要去GitLab上建立一個對應的倉庫,例如:

https://gitlab.com/xxx.git (替換為自己的實際git地址)

然后將代碼同步到此Git上。

git add .

git commit -m "Init"

git remote add origin https://gitlab.com/xxx.git(替換為自己的實際git地址)

git push --set-upstream origin master</pre>

podSpec文件需要版本控制信息,所以我們要打一個Tag.

git tag -m "first demo" 0.1.0

git push --tags</pre>

之后就可以去編輯podspec文件了。按以下方式來修改,不明白的字段請參考 官方文檔

之后記得去在終端輸入驗證命令,確保該Podspec有效:

pod lib lint helloCMSPod.podspec

記得將更改好的podspec文件上傳到git:

git add -A

git commit -m "change for podSpec"

git push

git tag -m "podSpec Demo" 0.1.1

git push --tags</pre>

向Spec Repo提交podspec

提交命令:

pod repo push xxxRepo helloXXXPod.podspec

在經過三輪的用戶校驗之后,提交成功!這時候我們去 ~/.cocoapods/repos/xxxRepo 中查看,我們的的podspec已經在里面了!

此時通過 pod search helloXXXPod 已經可以查到了!

如何使用

我們可以在想要使用的項目中的Podfile里加入如下代碼:

pod ‘helloXXXPod’
``
即可。
當然,由于我們的是私有CocoaPods庫,因此最好告訴系統這個庫的source在哪里,因此在Podfile文件上部也請加上Spec Repo的git地址

source ' https://gitlab.com/xxx.git '

整個的Podfile文件看起來是這樣的:

之后運行pod update 即可安裝對應的Pods

如果出現:</pre>

[!] An unexpected version directory Assets was encountered for the /Users/xxx/helloxxxPod Pod in the helloCMSPod repository.

```

這個錯誤,請查看:

  • podspec 是否未上傳到服務器
  • Podfile的source地址是否是Spec Repo的地址,而不是具體某一個Pod的地址。

驗證

新建一個SigleView的Project,配置好podfile后進行安裝Pod,編譯好運行,顯示如下圖:

至此,一次Pod拆分完成。

Reference

 

來自:http://www.jianshu.com/p/a73b6bfdb41a

 

 本文由用戶 Cal35Y 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!