1. 創建主工程
路徑:/Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject/MyMainProject.xcodeproj
2. 在碼雲(http://git.oschina.net/)上創建一個自己的遠程私有索引庫,用來存放私有框架的詳細描述信息.podspec文件

3. 創建本地的私有索引庫文件夾,並與遠程私有索引庫進行關聯
3.1 $ pod repo(查看本地已存在的索引庫)
master
- Type: git (master)
- URL: https://github.com/CocoaPods/Specs.git
- Path: /Users/Funky/.cocoapods/repos/master
3.2 添加本地私有索引庫並與遠程私有庫
$ pod repo add MyProjectSpec https://git.oschina.net/funky_hs/myprojectspec.git
3.3 再次查看本地已存在的索引庫 $ pod repo

4 在代碼托管平台碼雲(http://git.oschina.net/)創建一個用來存放項目基礎組件的倉庫MyProjectBase

5 快速創建模板測試工程(測試基礎組件)
5.1 快速創建模板測試工程 在/Users/Funky/Desktop/CocoaPodRemoteLib路徑下
cd /Users/Funky/Desktop/CocoaPodRemoteLib
$ pod lib create MyProjectBase (快速創建)

5.2 填寫以上信息后Xcode會自動打開測試工程,在測試模板工程文件夾下,我們可以看到如下:

5.3 用Category去替換Replace.m文件,在回到Example路徑下,重新執行pod install操作
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase/Example
$ pod install
此時打開模板測試工程,我們可以看到Pods > Development Pods > MyProjectBase > MyProjectBase > Classes > Category > (.h .m)
我們可以在模板測試工程中進行修改和操作!
6 將上面的模板測試工程,提交到第四步創建的遠程代碼倉庫
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase
$ git status
$ git add .
$ git commit -m'基礎組件測試工程'
編輯MyProjectBase 模版工程的MyProjectBase.podspec文件

$ pod lib lint (驗證上一步編輯的 MyProjectBase.podspec文件)
如果有ERROR,則需要去一個個修改完成,例如某個Category的.m文件沒有正確的引入依賴庫等都會造成ERROR,解決好所有的ERROR后,驗證結果如下:

這是一個警告,目前也並沒有找到合適的解決辦法,我們添加 --allow-warnings進行忽略
$ pod lib lint --allow-warnings
此時 MyProjectBase passed validation. 則說明驗證通過
$ git status
$ git add .
$ git commit -m '編輯spec文件'
$ git remote add origin https://git.oschina.net/funky_hs/myprojectbase.git (將本地庫與遠程代碼倉庫進行關聯)
$ git push origin master (提交到遠程倉庫)
$ git tag '0.1.0' (要與MyProjectBase.podspec文件中的tag值保持一致)
$ git push --tags(將tag提交到遠程)
$ pod spec lint --allow-warnings(驗證遠程是否正確,注意:Username與Password一定要填寫正確)
如果 Username與Password 填寫不正確,則:
- ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/bin/git clone http://git.oschina.net/funky_hs/myprojectbase.git /var/folders/d_/1bsk9q6n63zgbj5cwjg4m_wr0000gn/T/d20170427-3621-13rl3wf --template= --single-branch --depth 1 --branch 0.1.0
MyProjectBase.podspec passed validation.
表明驗證通過
7 將podspec文件提交到本地的私有索引庫
$ pod repo

$ pod repo push MyProjectSpec MyProjectBase.podspec

表示提交成功,此時遠程私有庫到此就已結束
注意:提交后,依然會驗證 podspec文件,驗證通過后 會自動上傳到在遠程spec索引庫,不信的話你可以看看在第二步創建的Spec遠程私有索引庫,是不是多了一個MyProjectBase/ 0.1.0文件!
8 主工程利用Pods使用我們自己的私有框架
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject
$ pod init
用Xcode打開編輯Podfile文件

$ pod install
打開MyMainProject.xcworkspace,此時在pod中可以找到遠程私有庫的代碼
9 添加及修改基礎組件內容
如下圖:

在本地的基礎組件的Classes路徑下 又新增了兩個文件夾(Base,Tool)
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase
編輯MyProjectBase 模版工程的MyProjectBase.podspec文件

$ git status
$ git add .
$ git commit -m'新增Base,Tool文件內容'
$ git push origin master (提交到遠程)
$ git tag '0.2.0'
$ git push --tags
$ pod repo push MyProjectSpec MyProjectBase.podspec
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject
修改Podfile文件

$ pod install
10 在基礎組件MyProjectBase內部生成子庫
問題描述:當我們執行完第九步后,我們發現主工程的Pods中並沒有按文件夾(Base,Category,Tool)進行不同類的划分,同時當我們僅僅想引入一個Category庫時,連同Base,Tool也引入進項目中,這就太惡心了!
參照AFNetworking

修改MyProjectBase.podspec文件

$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase
$ git status
$ git add .
$ git commit -m'生成子庫文件夾'
$ git push origin master (提交到遠程)
$ git tag '0.2.0'
$ git push --tags
$ pod repo push MyProjectSpec MyProjectBase.podspec
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject
修改Podfile文件

$ pod install
就現在 快打開主工程看一看吧!
有不理解或者發現博主存在理解操作不正確的地方,歡迎評論,我會及時修正!
