1.創(chuàng)建一個git倉庫由于存儲pod.spec文件
在git云平臺創(chuàng)建一個空的git倉庫酌予,將該倉庫添加到本地pod管理。該倉庫不需要手動commit,僅使用pod命令添加處理即可。
//附:建議使用ssh key與遠程git倉庫通信秃嗜。
pod repo add 5th-pods ssh://git@.../5th-pods.git
這樣在本地的pod repos中就有了5th-pods 與master文件夾,其中master就是CocoaPods官方的
2.使用Pod命令創(chuàng)建一個Pod工程
pod lib create ProductName
#輸入項
What platform do you want to use?? [ iOS / macOS ]
> iOS
What language do you want to use?? [ Swift / ObjC ]
> ObjC
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> None
Would you like to do view based testing? [ Yes / No ]
> No
What is your class prefix?
> AB
使用pod lib create 可以創(chuàng)建一個標準的pod工程顿膨,將該工程添加到遠程git倉庫進行管理锅锨。屬于pod庫的代碼應該放在ProductName/Classes 目錄下,使用示例代碼寫在Example的工程中恋沃。每個版本代碼修改完成并在Example中測試沒問題必搞,且本地pod spec校驗沒問題,可修改.podspec 中的s.version版本號囊咏,并commit推送到遠端倉庫顾画,打上與s.version同名的tag標簽。
3.Pod校驗及推送到私有庫
#本地校驗
pod spec lint ProductName.podspec --verbose --allow-warnings
#.podspec中有同時有私有庫和公有庫依賴
pod spec lint ProductName.podspec --verbose --allow-warnings --sources=ssh://git@git@.../5th-pods.git,https://github.com/CocoaPods/Specs.git
#推送到私有庫
pod repo push 5th-pods ProductName.podspec
#推送到私有庫(有私有庫依賴)
pod repo push 5th-pods ProductName.podspec --verbose --allow-warnings --sources=ssh://git@git@.../5th-pods.git,https://github.com/CocoaPods/Specs.git
附:推送到私有庫匆笤,使用的是遠程git代碼,一定要確保.podspec中git指向的s.version分支已存在并打好了tag推送到remote谱邪。
推送成功后就會看到repos/5th-pods中會多出ProductName的文件夾炮捧,并且pod已經幫我們管理好了s.version對應的代碼版本。
4.使用私有庫的Podfile寫法
source 'https://github.com/CocoaPods/Specs.git' #原CocoaPods倉庫
source 'ssh://git@git@.../5th-pods.git' #私有pod倉庫
target "Exchange" do
pod 'AFNetworking' #公有庫
pod 'PrivatePod', '0.01' #私有庫
end
如果遇到沒有找到module問題可參考
#import <ABNetwork/ABNetwork.h> Could not build module 'ABNetwork'
解決:選中項目target 選擇Build Setting 搜索 Allow Non-modular Includes in Framework Modules 將該項設為YES惦银。
原因:module中引用了外部module咆课。需要項目中設置允許在框架模塊中包含非模塊
更換pod版本號時,需要更新repos,下載最新的pod.podspec
pod repo update
5.使用Pod來管理代碼的好處
對于項目工程來說扯俱,代碼版本的管理直接影響著開發(fā)的效率书蚪,好的管理可以讓開發(fā)的效率倍增。
在沒有使用pod來管理之前迅栅,我們習慣都是整個大的工程的代碼都使用一個git倉庫來管理殊校,git倉庫可以很方便的回滾到某一個commit。不足之處在于整個工程的代碼都會回滾读存,而且commit的版本過多为流,以至于開發(fā)人員無法辨別哪一個是最接近回滾需求的那一個呕屎。
這里使用pod來管理代碼就可以完美的避免該問題,每個pod都是一個整體敬察,且僅是工程中可抽離的部分功能代碼秀睛。又有每個可運行的pod版本。因此莲祸,pod部分的代碼回滾僅需要修改版本號蹂安,而對主工程的其他代碼不會產生太大的影響。
5.pod依賴注意事項
pod庫會依賴其他第三方庫锐帜,如果兩個A田盈、B兩個庫分別依賴C庫的0.1和0.2版本,而主工程需要同時依賴A庫和B庫抹估,則pod加載會通不過缠黍。這個是需要注意的地方。
6.pod庫調試注意事項
剛剛改完pod中的代碼药蜻,就在Example中寫示例調試經常會遇到運行報錯的情況瓷式,這里需要注意的是,Xcode不是每次都會從新編譯pod中的代碼语泽,因此修改過pod中代碼后使用快捷鍵command+shift+k來清理一下贸典,再從新編譯運行。