1.?創(chuàng)建主工程?
路徑:/Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject/MyMainProject.xcodeproj
2.?在碼云(http://git.oschina.net/)上創(chuàng)建一個(gè)自己的遠(yuǎn)程私有索引庫蓬痒,用來存放私有框架的詳細(xì)描述信息.podspec文件?
3.?創(chuàng)建本地的私有索引庫文件夾狱掂,并與遠(yuǎn)程私有索引庫進(jìn)行關(guān)聯(lián)
3.1 $ pod repo(查看本地已存在的索引庫)
master
- Type: git (master)
- URL:? https://github.com/CocoaPods/Specs.git
- Path: /Users/Funky/.cocoapods/repos/master
3.2 添加本地私有索引庫并與遠(yuǎn)程私有庫
$ pod repo add MyProjectSpec https://git.oschina.net/funky_hs/myprojectspec.git
3.3 再次查看本地已存在的索引庫 $ pod repo
4?在代碼托管平臺(tái)碼云(http://git.oschina.net/)創(chuàng)建一個(gè)用來存放項(xiàng)目基礎(chǔ)組件的倉庫MyProjectBase?
5?快速創(chuàng)建模板測(cè)試工程(測(cè)試基礎(chǔ)組件)
5.1 快速創(chuàng)建模板測(cè)試工程 在/Users/Funky/Desktop/CocoaPodRemoteLib路徑下
cd /Users/Funky/Desktop/CocoaPodRemoteLib
$ pod lib create MyProjectBase (快速創(chuàng)建)?
5.2 填寫以上信息后Xcode會(huì)自動(dòng)打開測(cè)試工程器虾,在測(cè)試模板工程文件夾下兆沙,我們可以看到如下:
5.3 用Category去替換Replace.m文件葛圃,在回到Example路徑下库正,重新執(zhí)行pod install操作
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase/Example?
$ pod install
此時(shí)打開模板測(cè)試工程诀诊,我們可以看到Pods > Development Pods > MyProjectBase > MyProjectBase > Classes > Category > (.h .m)
我們可以在模板測(cè)試工程中進(jìn)行修改和操作属瓣!
6?將上面的模板測(cè)試工程抡蛙,提交到第四步創(chuàng)建的遠(yuǎn)程代碼倉庫
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase?
$ git status
$ git add .
$ git commit -m'基礎(chǔ)組件測(cè)試工程'
編輯MyProjectBase 模版工程的MyProjectBase.podspec文件?
$ pod lib lint (驗(yàn)證上一步編輯的 MyProjectBase.podspec文件)
如果有ERROR,則需要去一個(gè)個(gè)修改完成熊昌,例如某個(gè)Category的.m文件沒有正確的引入依賴庫等都會(huì)造成ERROR婿屹,解決好所有的ERROR后届腐,驗(yàn)證結(jié)果如下:
這是一個(gè)警告,目前也并沒有找到合適的解決辦法围详,我們添加 --allow-warnings進(jìn)行忽略
$ pod lib lint --allow-warnings
此時(shí)?MyProjectBase passed validation.?則說明驗(yàn)證通過
$ git status
$ git add .
$ git commit -m '編輯spec文件'
$ git remote add origin?https://git.oschina.net/funky_hs/myprojectbase.git?(將本地庫與遠(yuǎn)程代碼倉庫進(jìn)行關(guān)聯(lián))
$ git push origin master? (提交到遠(yuǎn)程倉庫)
$ git tag '0.1.0' (要與MyProjectBase.podspec文件中的tag值保持一致)
$ git push --tags(將tag提交到遠(yuǎn)程)
$ pod spec lint --allow-warnings(驗(yàn)證遠(yuǎn)程是否正確,注意: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.
表明驗(yàn)證通過
7?將podspec文件提交到本地的私有索引庫
$ pod repo
$ pod repo push MyProjectSpec MyProjectBase.podspec
表示提交成功漠嵌,此時(shí)遠(yuǎn)程私有庫到此就已結(jié)束
注意:提交后儒鹿,依然會(huì)驗(yàn)證 podspec文件约炎,驗(yàn)證通過后 會(huì)自動(dòng)上傳到在遠(yuǎn)程spec索引庫,不信的話你可以看看在第二步創(chuàng)建的Spec遠(yuǎn)程私有索引庫,是不是多了一個(gè)MyProjectBase/ 0.1.0文件喷鸽!
8?主工程利用Pods使用我們自己的私有框架
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject
$ pod init
用Xcode打開編輯Podfile文件?
$ pod install
打開MyMainProject.xcworkspace做祝,此時(shí)在pod中可以找到遠(yuǎn)程私有庫的代碼
9?添加及修改基礎(chǔ)組件內(nèi)容
如下圖:?
在本地的基礎(chǔ)組件的Classes路徑下 又新增了兩個(gè)文件夾(Base砾省,Tool)
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase?
編輯MyProjectBase 模版工程的MyProjectBase.podspec文件?
$ git status
$ git add .
$ git commit -m'新增Base,Tool文件內(nèi)容'
$ git push origin master (提交到遠(yuǎn)程)
$ git tag '0.2.0'
$ git push --tags
$ pod repo push MyProjectSpec MyProjectBase.podspec
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject
修改Podfile文件?
$ pod install
10?在基礎(chǔ)組件MyProjectBase內(nèi)部生成子庫
問題描述:當(dāng)我們執(zhí)行完第九步后混槐,我們發(fā)現(xiàn)主工程的Pods中并沒有按文件夾(Base编兄,Category,Tool)進(jìn)行不同類的劃分纵隔,同時(shí)當(dāng)我們僅僅想引入一個(gè)Category庫時(shí)翻诉,連同Base,Tool也引入進(jìn)項(xiàng)目中捌刮,這就太惡心了碰煌!
參照AFNetworking?
修改MyProjectBase.podspec文件?
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase
$ git status
$ git add .
$ git commit -m'生成子庫文件夾'
$ git push origin master (提交到遠(yuǎn)程)
$ git tag '0.2.0'
$ git push --tags
$ pod repo push MyProjectSpec MyProjectBase.podspec
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject
修改Podfile文件?
$ pod install
就現(xiàn)在 快打開主工程看一看吧!
有不理解或者發(fā)現(xiàn)博主存在理解操作不正確的地方绅作,歡迎評(píng)論芦圾,我會(huì)及時(shí)修正!