公共pod流程
第一步
在github上創建一個項目例如:podDemo,把地址clone到本地,在本地的podDemo文件下新建一個iOS項目,再把項目上傳到github
第二步
打開終端進入項目地址,輸入pod spec create xxx
如圖1,本地生成一個xxx.podspec文件,如圖2,這個文件是用來為CocoaPods配置信息
第三步
配置xxx.podspec文件
如圖3,是一些基本的信息(以下是部分的解釋)
name 是pod導入時候查詢的名稱,類似‘AFNetworking’
version 版本號
license 最好提供一個license文件,不然有些奇特的坑
source_files 開源的文件配置,這里取 項目名稱/Classes/所有文件
第四步
本地驗證,輸入 pod lib lint
圖4表示驗證通過了,否則會出現各種報錯信息
第五步
網絡驗證,輸入pod spec lint
如圖5,出現了一個錯誤,讀不到LICENSE文件,在文件中前往到地址Library/Caches/CocoaPods/Pods/External ,有類似 c2647c78b608c98aa2b54d4c64af29f9-05735 的文件夾下,找到自己的項目,復制一個LICENSE文件進去(我在其他項目中copy了一個LICENSE文件),創建目錄結構,如圖6
然后在驗證一次 ,如圖7,表示驗證通過了
第六步
驗證通過后可以打tag
git tag -m “desc” “0.0.1”
git push —tag
提交到CocoaPods需要一個CocoaPods的賬號,在終端輸入 pod trunk register 郵箱 ‘昵稱’ --description=‘描述’,郵箱驗證后就可以上傳自己的開源框架到CocoaPods了
第七步
上傳到CocoaPods,輸入 pod trunk push xxx.podspec,等CocoaPods審核,幾秒或者幾分鐘就完成了
成功后搜索一下,pod search,找不到就pod setup 后在search一下
參考文檔
http://www.lxweimin.com/p/d7d1942dd3f1
http://www.cnblogs.com/wengzilin/p/4742530.html
私有pod流程
具體流程跟公共流程大致相同,只是從第6步開始,上傳的位置是本地的服務器,需要一個本地的地址 ,如圖8
pod repo add KMLibssh://km_ios_lib_source@10.8.8.61:22/km_ios_lib_source.git
pod repo add 本地庫名 git地址
會在.cocoapods/repos 下生成一個 本地庫名
然后向這個庫里添加私有框架
pod repo push KMLib KMLibDemo.podspec
成功后如圖9
然后在服務器回生成版本的文件夾,更新到本地就OK了
開源庫在本地服務器的項目結構,圖10
配置時,可以通過pod 'KMLibDemo', :git => 'ssh://km_ios_lib_source@10.8.8.61:22/km_ios_lib_source.git' 引入到項目中
本地引入測試時可以用
#pod 'KMLibDemo', :podspec => /Users/lyym/.cocoapods/repos/KMLib/KMLibDemo/0.0.1/KMLibDemo.podspec''
#pod 'KMLibDemo', :podspec => /Users/lyym/Desktop/km_ios_lib_source/KMLibDemo/0.0.1/KMLibDemo.podspec''
一般本地測試成功,網絡就是可用的
坑點
xxx.podspec 文件在git下載后的一級目錄,否則 pod install 時會報錯
[!] An unexpected version directory `KMLibDemo` was encountered for the `/Users/lyym/.cocoapods/repos/KMLib/KMLibDemo` Pod in the `KMLibDemo` repository.
我使用網上提到的引用方式時是不成功的
source 'ssh://km_ios_lib_source@10.8.8.61:22/km_ios_lib_source.git'
pod 'KMLibDemo', '0.0.1'
提示
[!] An unexpected version directory `KMLibDemo` was encountered for the `/Users/lyym/.cocoapods/repos/KMLib/KMLibDemo` Pod in the `KMLibDemo` repository.
也不知道為何了
參考文檔
http://www.exiatian.com/cocoapods%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E5%8F%8A%E9%85%8D%E7%BD%AE%E7%A7%81%E6%9C%89%E5%BA%93/
http://www.cnblogs.com/xiaoshuailong/p/5149001.html
http://www.cocoachina.com/ios/20150228/11206.html