iOS github 框架
當用CocoaPods管理iOS工程內部第三方開源框架時,不僅為開發(fā)帶來了很大方便懒闷,而且也讓組件化開發(fā)成為了一種不錯的開發(fā)方式,即把所有組件以框架的方式交由CocoaPods管理慰毅,再統(tǒng)一集成進項目德撬,不僅提高了開發(fā)效率,而且項目架構也十分清晰明了固歪。
這里先說說使用CocoaPods發(fā)布開源框架的步驟蒜鸡,和一些出現(xiàn)的問題。
準備
首先牢裳,讓自己的電腦具備在github上具備開發(fā)框架的能力逢防,終端輸入以下命令:
// 這里輸入的郵箱是你注冊**github**的郵箱,當然如果沒有注冊github就先注冊一個
// 后面是開發(fā)者昵稱蒲讯,最好也跟注冊**github**的名字是一樣的忘朝,否則后面上傳的時候找不到
pod trunk register 你的郵箱 "你的名字"
注冊完成往后,會收到郵件判帮,復制鏈接局嘁,打開后,會出現(xiàn)一個注冊成功的圖片晦墙,如果不成功悦昵,則重新檢查注冊即可。然后晌畅,終端輸入以下命令:
pod trunk me
這一步終端就會打印你注冊的信息但指。
創(chuàng)建遠程代碼倉庫
然后,打開github抗楔,點擊+棋凳,點擊New repository,如下圖谓谦,其中標記內容為必填:
如此贫橙,遠程代碼倉庫創(chuàng)建完成,copy鏈接:
并打開終端反粥,在存放框架的目錄下卢肃,輸入以下命令:
git clone 鏈接
創(chuàng)建工程
然后打開Xcode創(chuàng)建新工程,在工程文件夾目錄下創(chuàng)建與框架同名的的文件夾才顿,用來存放框架源文件莫湘,與工程文件同級,并創(chuàng)建測試代碼文件郑气,OC就創(chuàng)建xx.h和xx.m幅垮,Swift就創(chuàng)建xx.swift即可。
返回上級目錄尾组,即工程目錄同級忙芒,先提交代碼倉庫示弓,命令如下:
git add .
git status
git commit -m "創(chuàng)建測試工程"
git push origin master
git tag "0.0.1"
git push --tags
生成spec文件,輸入以下命令:
pod spec create https://工程地址(或者是框架名稱)
配置spec文件
用Xcode打開spec文件,配置spec文件比較容易出錯呵萨,配置文件如下:
Pod::Spec.new do |s|
# 如果是開源框架的話奏属,以下保留屬性就足夠了
s.name = "TCPageView"
s.version = "0.0.2"
s.summary = "一個功能不錯的選項視圖"
s.homepage = "https://github.com/TardisCXX/TCPageView"
s.license = "MIT"
s.author = { "TardisCXX" => "email@address.com" }
s.platform = :ios, "8.0"
# 這里的tag是遠程倉庫工程標簽,可以直接修改潮峦,但應該和提交的標簽一致囱皿,也可以不要"",直接寫s.version
s.source = { :git => "https://github.com/TardisCXX/TCPageView.git", :tag => "#{s.version}" }
# 源文件路徑忱嘹,在本地話嘱腥,就是源文件文件層次,下面是Swift框架拘悦,如果是OC就應該是s.source_files = "TCPageView", "TCPageViewProject/TCPageView/*.{h,m}"
s.source_files = "TCPageView", "TCPageViewProject/TCPageView/*.swift"
s.requires_arc = true
# 如果是Swift這一句要加上齿兔,如果是OC這一句就不需要了,當然如果還有使用的庫窄做,就用s.frameworks = "", "",...
s.framework = "UIKit"
# 如果有依賴庫的話愧驱,還得加上s.dependency "JSONKit"
end
command + s保存慰技,然后驗證spec文件椭盏,命令如下:
pod spec lint 或者 pod lib lint
如果驗證成功,則執(zhí)行下面命令:
pod trunk push
可能出現(xiàn)的問題1
如果提交成功吻商,掏颊,然后執(zhí)行命令:
pod search 框架名
如果搜索到,那么恭喜你艾帐,你可以開發(fā)框架了乌叶,如果沒搜索到,那么如下:
pod setup
如果還不能search到柒爸,那么找到以下路徑:
~/Library/Caches/CocoaPods
然后刪除目錄下的search_index.json文件准浴,然后繼續(xù)輸入命令:
pod search 框架名
可能出現(xiàn)的問題2
在生成spec文件的時候,會出現(xiàn)以下一個問題:
[!] Unable to fetch data for `TardisCXX/TCNewFeatureView`
重新刪除創(chuàng)建的工程捎稚,然后推送到遠程倉庫乐横,再生成spec文件
可能出現(xiàn)的問題3
1. 驗證spec文件的時候,出現(xiàn)一個問題:
- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.
解決辦法今野,那么就輸入:
pod spec lint --verbose
2. 驗證spec文件的時候葡公,出現(xiàn)一個問題2:
- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code.
解決辦法,那么就輸入:
pod spec lint --no-clean
如果還是解決不了条霜,不防輸入:
echo "3.0" > .swift-version
3. 驗證spec文件的時候催什,出現(xiàn)一個問題3:
- ERROR | license: Sample license type.
解決辦法,刪除license屬性的(example)
4. 驗證spec文件的時候宰睡,出現(xiàn)一個問題4:
- WARN | source: Git sources should specify a tag.
解決辦法蒲凶,有一個沒有打標簽的錯誤气筋,這個只是一個警告,如果沒有打標簽旋圆,就先打個標簽
5. 驗證spec文件的時候裆悄,出現(xiàn)一個問題5:
[!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run:
`echo "2.3" > .swift-version`:
解決辦法,直接運行:
echo "2.3" > .swift-version
6. 驗證spec文件的時候臂聋,出現(xiàn)一個問題6:
- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
解決辦法光稼,重新檢查下s.source_files源文件目錄層次,修改后再次運行孩等,如果還是報錯艾君,那么 open 或者 手動打開 以下路徑:
/Users/電腦名/Library/Caches/CocoaPods/Pods/External/5f222008c0986b8da6c0672944111053-3cfc4
一直到最后文件夾中,就會看到沒有源文件肄方,那么我們手動創(chuàng)建冰垄,即把已經創(chuàng)建好的源文件按照spec文件配置層次,拖進去即可权她,當然不需要工程文件:绮琛S缫!然后再次驗證:
pod spec lint
就會成功步清,如果還不成功要门,重新打標簽廓啊,或者刪除工程文件、刪除spec文件谴轮,重新來過!5诓健疮装!
當驗證成功后雌续,需要把spec推送到github斩个,執(zhí)行以下命令:
pod trunk push
當然還有一些問題,就是你的ruby版本太低驯杜,請更新即可受啥。
最后
以上只是我遇到的一些問題,有所疏漏在所難免,希望大家?guī)臀也槿毖a漏滚局,謝謝居暖。