iOS 自制cocoapod里的第三方

如何與cocoapod關(guān)聯(lián)果复,在cocoapod中能搜索并引用到項(xiàng)目中,自定義寫的第三方庫渤昌。也就是:上傳代碼到cocoapod虽抄。
要想上傳代碼到cocoapod,首先,需要有一個gitlab或者github賬號独柑,并且把自己將要制作成的第三方庫的代碼的工程傳到gitlab或者github上迈窟,此操作在名稱為:“iOS ssh keys 和 mac下使用github 上傳代碼” 和“GitHub 使用”,的文章中忌栅,有具體闡述车酣,其中,上傳gitlab和github的步驟和方法基本一樣索绪,差別不大湖员。

下面就拿gitlab說一下吧!
接下來的步驟基于 工程與gitlab已經(jīng)建立好聯(lián)系瑞驱,本地的工程可以通過終端或者常用工具sourceTree,進(jìn)行更新和上傳修改的本地工程代碼娘摔。(注意:在首次上傳項(xiàng)目,沒有任何提交節(jié)點(diǎn)的時候唤反,需要對工程進(jìn)行ignore操作(不然后來再ignore會有很多問題)凳寺,這在sourceTree里面可以配置,如下的地方:ignore的具體內(nèi)容可以直接在gitHub上搜索gitignore彤侍,里面有很多類型開發(fā)語言的ignore文件肠缨,找到oc語言的,就可以了)

001.png

話題回來盏阶,接著說晒奕,比如已經(jīng)搞好的:本地項(xiàng)目,工程名字wgjPublicTest, 在gitlab上創(chuàng)建的用于儲存publicTest工程的project的名字為publicOne。這只是可以進(jìn)行上傳和拉取等一些代碼的線上和本地的操作名斟,還沒有和cocoapod產(chǎn)生關(guān)系吴汪,那么下面就開始讓他們發(fā)生點(diǎn)關(guān)系吧:

  1. 終端進(jìn)入本地工程,pod spec create wgjPublicTest,操作后蒸眠,本地的工程文件里面出現(xiàn):wgjPublicTest.podspec漾橙,編寫 podspec 文件,可以使用Vim ,或者Xcode , Sublime也可以楞卡,這是一個Ruby文件霜运。此文件的一些內(nèi)容已經(jīng)自動生成脾歇,我們針對這個文件需要做一些修改。我用Sublime工具打開淘捡,文件格式在如下圖中進(jìn)行選擇藕各,選擇ruby。


    01.png

文件中:
Pod::Spec.new do |s|
# 名稱 使用的時候pod search [name]
s.name = "XWSwiftRefreshT"
# 代碼庫的版本
s.version = "0.1.2"
# 簡介
s.summary = "The easiest way to use pull-to-refresh with Swift2.0 program language."
# 主頁
s.homepage = "https://github.com/boyXiong/XWSwiftRefreshT"
# 許可證書類型焦除,要和倉庫的LICENSE 的類型一致
s.license = "MIT"
# 作者名稱 和 郵箱
s.author = { "boyXiong" => "relv@qq.com" }
# 作者主頁
s.social_media_url = "http://blog.csdn.net/boyXiong.com/"
# 代碼庫最低支持的版本
s.platform = :ios, "8.0"
# 代碼的Clone 地址 和 tag 版本
s.source = { :git => "https://github.com/boyXiong/XWSwiftRefreshT.git", :tag => "0.1.2" }
# 如果使用pod 需要導(dǎo)入哪些資源
s.source_files = "XWSwiftRefreshT/*/.{swift}"
s.resources = "XWSwiftRefreshT/Icon/xw_icon.bundle"
# 框架是否使用的ARC
s.requires_arc = true

    end

其中l(wèi)icense,如果后來本地驗(yàn)證的時候激况,報錯的話,可以隨便建一個git touch, 在里面隨便寫點(diǎn)內(nèi)容膘魄。

下面有份示例:

033.png

022.png

011.png
  1. 編寫完成后乌逐,先進(jìn)行本地檢查
    pod lib lint wgjPublicTest.podspec;如果報錯创葡,就是.podspec文件里面東西沒有寫對浙踢,進(jìn)行修改即可。

  2. 工程里面.podspec文件完成之后灿渴,終端:pod repo ,列出pod本地的一些東西洛波。此時發(fā)現(xiàn),只有master, 這是pod 本地默認(rèn)的一個骚露,也就是平常我們使用cocoapod進(jìn)行導(dǎo)入三方庫的一些本地目錄蹬挤。這里需要我們建一個自己的:(Adding a repo needs a NAME and a URL.)pod repo add wgjT https://wgj@gitlab.com/wgj/WgjPublic.git,其中棘幸,wgjT就是在本地pod目錄中和master并列的一個文件夾闻伶,鏈接中的WgjPublic是自己在gitlab上建立的一個project,這個project就是以后盛放自定義第三方工程們(就是只有幾k大小的那些.podspec文件)的一個project够话。這個project需要在命令執(zhí)行前建的(不用初始化操作,創(chuàng)建空的就行光绕,若后來pod search 不到的話女嘲,就改為權(quán)限為:public(private應(yīng)該也是可以的),再試诞帐,若改不了權(quán)限欣尼,刪除,重新創(chuàng)建)停蕉,而wgjT則是執(zhí)行命令后愕鼓,自動生成的。
    pod repo 一下慧起,看一下列表菇晃,發(fā)現(xiàn)有了。

  3. 接下來需要做什么呢蚓挤?推給pod遠(yuǎn)程磺送,進(jìn)入帶有wgjPublicTest.podspec的工程的目錄驻子,終端:pod repo push wgjT wgjPublicTest.podspec,此時估灿,也許會發(fā)現(xiàn)錯誤崇呵,需要注意:1. 利用sourceTree,把本地wgjPublicTest工程修改的東西提交,其中就包括.podspec文件馅袁;提交完成之后域慷,需要打一個標(biāo)簽,因?yàn)閏ocoapod版本控制的一些操作和這個標(biāo)簽有關(guān)汗销。2.注意.podspec文件里面的 homepage 和 source 的地址有沒有寫錯犹褒,針對此文章示例需寫的是publicOne的地址路徑。

  4. 此時大溜,就差不多完成了化漆,pod search wgjPublic,找一下看有沒有钦奋,此時發(fā)現(xiàn)有了座云,好激動。不要太高興付材,建一個項(xiàng)目朦拖,測試一下能不能正常導(dǎo)入自己制作的第三方,握草厌衔,發(fā)現(xiàn)能搜索出來璧帝,但是不能導(dǎo)入測試項(xiàng)目,什么原因呢富寿,可能是:缺少source這個東西睬隶,示例:
    source 'https://wgj@gitlab.com/wgj/WgjPublic.git'
    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '7.0'
    target 'PodTest002' do
    pod 'AFNetworking', '3.1.0'
    pod 'wgjPublicTest', '0.0.1'
    end
    到此,終于可以了页徐!

注:如果不想source引入或者是自己能search到苏潜,但是別人search 不到,那就需要是直接發(fā)到cocoapod的master主干了(pod trunk push **. podspec,沒有發(fā)布到cocoapod主干master)变勇,這樣的話恤左,在創(chuàng)建過程中,本地的pod庫目錄中也就不用建自己的文件夾搀绣,而是用的master飞袋。

wgjT和WgjPublic分別是本地pod里面的一個文件夾和gitlab上一個存儲第三方的project,這兩個其實(shí)是對應(yīng)的链患,取相同的名字比較好巧鸭。這個類似于一個倉,這個倉可以被其他開發(fā)者用麻捻,例如蹄皱,其他的開發(fā)者可以在本地pod中添加這個倉:pod repo add DFSpecs https://wgj@gitlab.com/chenrj/DFSpecs.git览闰,---pod lib lint wgj_GitlabTest01.podspec--- pod repo push DFSpecs wgj_GitlabTest01.podspec,當(dāng)然巷折,這個需要權(quán)限压鉴,需要被加入成員。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锻拘,一起剝皮案震驚了整個濱河市油吭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌署拟,老刑警劉巖婉宰,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異推穷,居然都是意外死亡心包,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門馒铃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蟹腾,“玉大人,你說我怎么就攤上這事区宇⊥拗常” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵议谷,是天一觀的道長炉爆。 經(jīng)常有香客問我,道長卧晓,這世上最難降的妖魔是什么芬首? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮逼裆,結(jié)果婚禮上郁稍,老公的妹妹穿的比我還像新娘。我一直安慰自己波附,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布昼钻。 她就那樣靜靜地躺著掸屡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪然评。 梳的紋絲不亂的頭發(fā)上仅财,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機(jī)與錄音碗淌,去河邊找鬼盏求。 笑死抖锥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碎罚。 我是一名探鬼主播磅废,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荆烈!你這毒婦竟也來了拯勉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤憔购,失蹤者是張志新(化名)和其女友劉穎宫峦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玫鸟,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡导绷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了屎飘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妥曲。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖枚碗,靈堂內(nèi)的尸體忽然破棺而出逾一,到底是詐尸還是另有隱情,我是刑警寧澤肮雨,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布遵堵,位于F島的核電站,受9級特大地震影響怨规,放射性物質(zhì)發(fā)生泄漏陌宿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一波丰、第九天 我趴在偏房一處隱蔽的房頂上張望壳坪。 院中可真熱鬧,春花似錦掰烟、人聲如沸爽蝴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝎亚。三九已至,卻和暖如春先馆,著一層夾襖步出監(jiān)牢的瞬間发框,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工煤墙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梅惯,地道東北人宪拥。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像铣减,于是被迫代替她去往敵國和親她君。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容