項目管理:CocoaPods建立私有倉庫

jopen 9年前發布 | 20K 次閱讀 CocoaPods iOS開發 移動開發

原文  http://www.cocoachina.com/ios/20150508/11785.html

項目管理:CocoaPods建立私有倉庫

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

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

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

CocoaPods默認只能管理基于git管理的代碼,如果要使用svn或者mercurial管理代碼,則需要 安裝一些插件

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

1.創建代碼倉庫

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

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

$ git tag -a

將tag推送到git服務器

$ git push --tags

這里 一般是類似1.0.2的版本號。版本號的規范參考 這里

3.創建spec文件

在shell中運行:

$ pod spec create

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

4.驗證spec文件有效性

spec文件修改完成后,運行

pod spec lint .podspec

根據輸出提示修改你的spec文件或者代碼,直到能pass.

5.創建spec repository(spec 倉庫)

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

[plain] view plaincopy

├── Specs └── [SPEC_NAME] └── [VERSION] └── [SPEC_NAME].podspec

例:

├─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中

$ pod repo add REPO_NAME SOURCE_URL

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

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

后面如果還要往REPO_NAME里添加新包,只需運行下面命令:

$ pod repo push REPO_NAME SPEC_NAME.podspec

如要刪除私有repo:

$ pod repo remove [name]

8.添加包到工程的Podfile中如下:

source 'https://github.com/agdsdl/Specs.git'  
source 'https://github.com/CocoaPods/Specs.git'  

platform :ios, "7.0"  

target "XXX" do  
pod 'DLSlideView','~>0.8.1'  
end

9. That's it!

接下來測試運行:

到工程目錄下運行

$ pod update

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

一些坑:

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

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

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

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

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

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