前段時間看到了 @貓爪 的一片文章,講了個人如何上傳自己的私有庫,供別人使用讯檐。按照他的教程讹蘑,期間碰到了許多問題癣朗,這里做個筆記碌尔,供像我一樣的純新手使用苍匆。
@貓爪 【最新】上傳代碼到cocoapod ,自己的框架提供給開發(fā)者使用
@zhiyi 特別感謝這位熱心的大神耐心的解答我的小白問題
1. git上創(chuàng)建一個新的repository
這時你的git上就新建了一個空的工程它碎,下面需要將工程clone
到本地函荣。
2.添加代碼
將庫文件與使用Demo,添加到第一步clone
下來的空的工程中去扳肛。
然后用git客戶端將代碼上傳到git
3.打Tag傻挂,首先要cd進(jìn)入clone
下來的工程主目錄
- 本地tag。
// 打tag挖息,注意金拒,這里的tag打在本地,還沒有push到git的origin
git tag 0.0.1 -m 'update'
-
push
到origin
套腹,這一步狠重要绪抛,否則后面會報錯
// 將Tag,Push到origin
git push origin --tags
4.podspec文件
- 創(chuàng)建电禀。路徑還是與第3步一樣幢码。在
clone
下來的主目錄下。
// 創(chuàng)建podspec文件
pod spec create JWTrace
- 編輯文件內(nèi)容
Pod::Spec.new do |s|
// 名稱
s.name = "JWTrace"
// 版本
s.version = "0.0.3"
// 描述
s.summary = "日志打印控制器"
// 主頁
s.homepage = "https://github.com/junwangInChina/JWTrace"
// 證書申明
#s.license = "MIT"
s.license = { :type => 'MIT', :file => 'LICENSE' }
// 作者
s.author = { "xxx" => "xxx@xxx.com" }
// 支持版本
s.platform = :ios, "8.0"
// 版本地址
s.source = { :git => "https://github.com/junwangInChina/JWTrace.git", :tag => "0.0.3" }
// 庫文件路徑(相對于.podspec文件的路徑)
s.source_files = "JWTraceDemo/JWTrace/**/*.{h,m}"
// 是否支持arc
s.requires_arc = true
end
需要注意的是s.source_files
路徑不要搞錯尖飞。
- 校驗文件
// 校驗文件
pod spec lint ./JWTrace.podspec
注意這一步蛤育,我在這里卡了很久,因為校驗老是不通過葫松,但是又沒有錯誤信息瓦糕。[!] The spec did not pass validation, due to 2 errors and 1 warning.
只有類似這種錯。
這里建議使用幫助命令
// 查看幫助命令
pod --help
// 把校驗命令修改為
pod spec lint ./JWTrace.podspec --verbose
上面的錯誤說找不到分支腋么,這就是第3步里的
tag
沒有push
到origin
導(dǎo)致的咕娄。將打好的tag,push到git上去之后珊擂,再校驗圣勒。
// 再校驗
pod spec lint ./JWTrace.podspec --verbose
注意看最后面
- 提交
.podspec
文件到git
可能遇到的錯誤1
// 提交到git服務(wù)器,無警告時
pod trunk push ./JWTrace.podspec
如果你是第一次提交摧扇,可能會出現(xiàn)You need to register a session first
錯誤
就是要注冊session的意思
參考1
參考2
// 第一次push到git時圣贸,需要注冊session
pod trunk register xxx@xxx.com 'name' --description='macbook air'
可能遇到的錯誤2
// 提交到git服務(wù)器
pod trunk push ./JWTrace.podspec
提交成功示例
// 提交到git服務(wù)器扛稽,忽略警告
pod trunk push ./JWTrace.podspec --allow-warnings
可能遇到的問題3
網(wǎng)上說是因為pod緩存的問題吁峻,要刪掉本地的
master
重新pod setup
rm -fr ~/.cocoapods/repos/master
pod setup
我的處理方式是升級cocapods版本
// 默認(rèn)升級到最新版本
gem install cocoapods
// 再更新本地repo
pod repo update --verbose
此時
cocoapods
已經(jīng)準(zhǔn)備好了,再提交
pod trunk push ./JWCounter.podspec --allow-warnings
可能遇到的問題4
這個問題一般在上一步矮慕,校驗
podspec
文件時,就會出現(xiàn)因為你的破的文件沒有指明是用于什么系統(tǒng)
// 加上這個就行了
s.platform = :ios, '7.0'
可能遇到的問題5
這個問題的出現(xiàn)場景與解決方案與上一個問題基本一樣啄骇,都是在
podspec
文件里缺少指明
// 加上這個
s.frameworks = 'UIKit'
可能遇到的問題6
因為你沒有更新本地庫啊
方法一:
終端輸入命令pod repo update 更新倉庫痴鳄,在執(zhí)行search命令。
方法二:
刪除~/Library/Caches/CocoaPods目錄下的search_index.json文件
pod setup成功后會生成~/Library/Caches/CocoaPods/search_index.json文件缸夹。
終端輸入rm ~/Library/Caches/CocoaPods/search_index.json
刪除成功后再執(zhí)行pod setup(會重新生成search_index.json文件的)
方法三:
git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/master
pod cache clean --all
rm -rf ~/Library/Caches/CocoaPods
pod repo update
-
pod search
最后就是校驗自己的成果了痪寻。
// 利用pod,查詢自己提交的庫
pod search JWTrace