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一一對應。

將其推送到git服務器,參考我們開源的代碼

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中如下:

1
2
3
4
5
6
7
8
   
platform :ios, "7.0"  
   
target "XXX" do  
pod 'DLSlideView','~>0.8.1'  
end

9. That's it!

接下來測試運行:

到工程目錄下運行

1
$ pod update

依賴包更新完畢後,打開workspace文件,點擊Go!

一些坑:

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

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

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

詳細的一些東西可以看這裏

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章