你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> 項目管理:CocoaPods建立私有倉庫

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

編輯:IOS開發基礎

0.jpg

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就可以直接使用私有倉庫了。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved