1. 程式人生 > >專案管理:CocoaPods建立私有倉庫

專案管理:CocoaPods建立私有倉庫

CocoaPods是iOS,Mac下優秀的第三方包管理工具,類似於java的maven,給我們專案管理帶來了極大的方便。

個人或公司在開發過程中,會積累很多可以複用的程式碼包,有些我們不想開源,又想像開源庫一樣在CocoaPods中管理它們,那麼通過私有倉庫來管理就很必要。

對於CocoaPods還不太熟悉的,建議參考一下唐巧的部落格或者直接到CocoaPods的官網看看:https://cocoapods.org/

CocoaPods預設只能管理基於git管理的程式碼,如果要使用svn或者mercurial管理程式碼,則需要安裝一些外掛

以下方法都是基於git來操作。

1.建立程式碼倉庫

將自己寫的程式碼推送到git伺服器。如果程式碼可以開源的話,可以用github來託管。參考我們所開源的程式碼

2.給穩定的程式碼打上版本tag,一般以版本號作為tag名

1 $ git tag -a

將tag推送到git伺服器

1 $ git push --tags

這裡一般是類似1.0.2的版本號。版本號的規範參考這裡

3.建立spec檔案

在shell中執行:

1 $ pod spec create

會在當前目錄建立.podspec檔案,建立的檔案是個完整的配置模板,根據字面意思以及註釋,大體上都能弄明白。不清楚的地方可以到https://guides.cocoapods.org/making/specs-and-specs-repo.html看看,github上也有很多開原始碼可以參考。

4.驗證spec檔案有效性

spec檔案修改完成後,執行

1 pod spec lint .podspec

根據輸出提示修改你的spec檔案或者程式碼,直到能pass.

5.建立spec repository(spec 倉庫)

除了上面建立的程式碼倉庫,還需要建立一個spec倉庫,存放spec,目錄結構應該遵照以下的規範:

[plain] view plaincopy

1 2 3 4 ├── Specs   └── [SPEC_NAME]   └── [VERSION]   └── [SPEC_NAME].podspec

例:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ├─Specs   ├──QueryKit/   ├── 0.8.0   │   └── QueryKit.podspec   ├── 0.8.1   │   └── QueryKit.podspec   ├── 0.8.2   │   └── QueryKit.podspec   └── 0.8.3   └── QueryKit.podspec   URITemplate   ├── 1.0.0   │   └── URITemplate.podspec   └── 1.0.1   └── URITemplate.podspec

這裡的版本號要和程式碼倉庫裡的tag一一對應。

6.新增私有repo到CocoaPods中

1 $ pod repo add REPO_NAME SOURCE_URL

7.驗證私有repo安裝無誤:

1 2 $ cd ~/.cocoapods/repos/REPO_NAME   $ pod repo lint .

後面如果還要往REPO_NAME裡新增新包,只需執行下面命令:

1 $ pod repo push REPO_NAME SPEC_NAME.podspec

如要刪除私有repo:

1 $ pod repo remove [name]

8.新增包到工程的Podfile中如下:

9. That's it!

接下來測試執行:

到工程目錄下執行

1 $ pod update

依賴包更新完畢後,開啟workspace檔案,點選Go!

一些坑:

很容易把spec repository和程式碼repository弄混,我一開始就在這裡掛起了好久。程式碼repository是程式碼倉庫,我們把包程式碼上傳到這個倉庫。

spec repository是配置倉庫,所有的配置按照包名、版本號分門別類的存放在這個倉庫。這個倉庫只用來存放spec檔案,不存放程式碼。

spec repository可以放在本地,不用git伺服器,但是貌似必須用git init初始化這個目錄。

1到8步都只需在本機執行一次,團隊裡的其他人只需更新Podfile就可以直接使用私有倉庫了。