關于發(fā)布github開源框架

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)建倉庫.png

如此贫橙,遠程代碼倉庫創(chuàng)建完成,copy鏈接:

copy地址.png

并打開終端反粥,在存放框架的目錄下卢肃,輸入以下命令:

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文件

配置spec.png

用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漏滚局,謝謝居暖。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市藤肢,隨后出現(xiàn)的幾起案子太闺,更是在濱河造成了極大的恐慌,老刑警劉巖嘁圈,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件省骂,死亡現(xiàn)場離奇詭異,居然都是意外死亡最住,警方通過查閱死者的電腦和手機钞澳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涨缚,“玉大人轧粟,你說我怎么就攤上這事∨海” “怎么了兰吟?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長茂翔。 經常有香客問我混蔼,道長,這世上最難降的妖魔是什么檩电? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任拄丰,我火速辦了婚禮,結果婚禮上俐末,老公的妹妹穿的比我還像新娘。我一直安慰自己奄侠,他們只是感情好卓箫,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垄潮,像睡著了一般烹卒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弯洗,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天旅急,我揣著相機與錄音,去河邊找鬼牡整。 笑死藐吮,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播谣辞,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼泥从!你這毒婦竟也來了?” 一聲冷哼從身側響起躯嫉,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤祈餐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后昼弟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡变骡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年塌碌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片台妆。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡胖翰,死狀恐怖,靈堂內的尸體忽然破棺而出懊缺,到底是詐尸還是另有隱情,我是刑警寧澤鹃两,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布舀凛,位于F島的核電站,受9級特大地震影響猛遍,放射性物質發(fā)生泄漏号坡。R本人自食惡果不足惜抗果,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一冤馏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逮光,春花似錦、人聲如沸涕刚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驾茴。三九已至,卻和暖如春锈至,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背峡捡。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稍途,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓晰房,卻偏偏與公主長得像射沟,于是被迫代替她去往敵國和親验夯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理挥转,服務發(fā)現(xiàn)绑谣,斷路器,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • 目前比較流行的組件化開發(fā)借宵,針對多個 app 要用同一套代碼,將其做成 pod 倉庫是比較好的解決方案豁护。代碼只有一份...
    ripperhe閱讀 5,399評論 8 39
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,841評論 25 707
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,778評論 6 342
  • Ariel的世界閱讀 126評論 0 0