創(chuàng)建cocoaPods私有倉庫

轉(zhuǎn)載請注明出處:

http://www.reibang.com/p/8c9280326ae8

作者:紀小衰

由于公司很多的動態(tài)鏈接庫經(jīng)常更新剪况,經(jīng)常會造成導(dǎo)入的framework版本不是最新报辱,所以選擇創(chuàng)建一個cocoaPods的私有倉庫用來同步最新的包乃正,當(dāng)然對于源碼的同步也是支持的邪媳。

一塌计、創(chuàng)建私有的git倉庫

創(chuàng)建私有倉庫的方法有很多犀勒,由于github是開源社區(qū)摔笤,開源的代碼比較多副女,對于私有的倉庫是收費的蛤高,所以git倉庫的存儲選擇了免費的coding.net,倉庫的作用是存放自身的源碼和一些用到的第三方庫肮塞。

先去https://coding.net注冊一個賬戶襟齿,注冊完畢后在項目選項下新建一個項目。項目創(chuàng)建選項枕赵,選擇私有可以讓git倉庫私有半夷,創(chuàng)建拉取權(quán)限,如果選擇公有則所有的人都可以下載同步代碼絮吵,我這里使用私有。對于協(xié)議的選取涧黄,如果是開源的代碼,可選MIT協(xié)議赋荆。對于gitignore的選取按需選擇笋妥,設(shè)置gitignore可以選擇git同步的時候忽略哪些文件類型。對于README最好勾選創(chuàng)建說明文件窄潭。

創(chuàng)建項目完畢以后春宣,復(fù)制下項目對應(yīng)的git地址。對于項目的拉取可以使用git命令嫉你,我這里使用的是smartgit可視化工具月帝。repository->clone拉取遠程項目。

二幽污、創(chuàng)建podspec

使用cocoaPods的pod install命令時嚷辅,其實是從本地的~/.cocoapods/repos/master(默認隱藏)中的對應(yīng)庫尋找對應(yīng)版本的podspec文件,通過podspec中文件的地址以及信息拉取對應(yīng)的庫距误。當(dāng)我們自己創(chuàng)建cocoapods私有庫的時候則需要自己創(chuàng)建相對應(yīng)的podspec文件簸搞,并且push到遠程的cocoaPods主分支上,當(dāng)其余的使用者使用cocoaPods更新cocoaPods本地分支時候便能拉取到我們新上傳的podspec准潭,然后便能通過podspec文件找到我們上傳的庫趁俊。

首先,我們創(chuàng)建一個自己的podspec文件

打開拉取到的項目惋鹅,項目中應(yīng)該包含README文件则酝,開源協(xié)議LISENCE。我這邊沒有選中協(xié)議所以只有README文件(.gitignore應(yīng)該是隱藏了)闰集。創(chuàng)建podspec文件的方式有兩種:

命令創(chuàng)建:命令行cd到項目目錄下沽讹,使用pod命令'pod spec create CTFramework'創(chuàng)建podspec文件,創(chuàng)建完以后就會在工程目錄下看見CTFramework.podspec文件武鲁,進入修改相關(guān)的屬性

復(fù)制創(chuàng)建:新建文件工程名.podspec文件爽雄,然后下面的podspec文件內(nèi)容復(fù)制進去進行修改,注意#開頭的為注釋行,source_files為指定對應(yīng)目錄下的資源文件沐鼠,由于我這邊只會同步framework而沒有.h和.m文件挚瘟,所以這一行我注釋掉了。關(guān)于s的屬性介紹可參考官方文檔https://guides.cocoapods.org/syntax/podspec.html

Pod::Spec.new do |s|

s.name= "CTFramework"

s.version= "0.0.1"

s.summary= "iOS Social SDK based on EaseMob SDK"

s.description= <<-DESC

iOS Social SDK based on EaseMob SDK

DESC

s.homepage= "http://www.reibang.com/users/49ee0c6dad03/latest_articles"

# s.license= "MIT (example)"

# s.license= { :type => "MIT", :file => "FILE_LICENSE" }

s.author= { "Jirun" => "507704800@qq.com" }

s.platform= :ios

s.source= { :git => "https://git.coding.net/JiRun/CTFramework.git", :tag => "#{s.version}" }

# s.source_files= "Classes", "Classes/**/*.{h,m}"

# s.exclude_files = "Classes/Exclude"

# s.public_header_files = "Classes/**/*.h"

# s.resource= "icon.png"

# s.resources = "Resources/*.png"

# s.preserve_paths = "FilesToSave", "MoreFilesToSave"

# s.framework= "SomeFramework"

s.frameworks = "UIKit", "Foundation","CTCore"

s.ios.vendored_frameworks = "CTCore.framework"

# s.library= "iconv"

# s.libraries = "iconv", "xml2"

s.requires_arc = true

# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }

# s.dependency "JSONKit", "~> 1.4"

end

修改好podspec文件后饲梭,把需要上傳到遠程倉庫的文件拖入到項目目錄乘盖,由于我這里只想同步動態(tài)庫,所以這里只拖入了一個動態(tài)鏈接庫憔涉。把當(dāng)前的項目通過smartgit push到遠程git倉庫订框,并且通過下面命令打上tag,注意tag要和podspec文件中的tag要一致

$ git tag 0.0.1

$ git push --tags

加入文件后的項目目錄

制作好本地的podspec文件以后兜叨,我們要先本地驗證下podspec文件是否可用穿扳,使用下面的命令進行驗證衩侥,如果驗證錯誤會有錯誤信息,請根據(jù)錯誤信息修改podspec文件矛物,直到顯示下面的界面表示通過了本地驗證茫死。通過驗證以后重新把項目文件通過smartgit push到遠程git上

pod lib lint

通過本地podspec文件驗證

三、push本地的podspec文件到cocoaPods主分支上

使用下面的命令履羞,把本地的podspec文件push到cocoaPods的遠程主分支上

$ pod trunk push --allow-warnings

對于一些警告可以使用命令pod trunk push --allow-warnings去除警告峦萎,如果出現(xiàn)錯誤則需要根據(jù)錯誤提示去修改podspec文件,如果出現(xiàn)下面的界面忆首,那么恭喜骨杂,人生中的第一個私有倉庫已經(jīng)構(gòu)建完畢了?

podspec推送成功

由于在上傳成功以后本地的cocoaPods主分支也會更新,所以這個時候我們直接能獲取到私有倉庫的內(nèi)容了雄卷。如果在另一臺pc上,我們需要使用下面的方法更新下本地的cocoaPods主分支才能用過pod search 命令搜索到

$ pod repo update

四蛤售、獲取倉庫中的包

故事寫到這里其實已經(jīng)結(jié)束了丁鹉,接下來的內(nèi)容為使用cocoaPods的內(nèi)容。

使用$ pod search CTFramework命令查看本地的cocoaPods主分支上是否已經(jīng)支持我們新建的私有倉庫

出現(xiàn)這個界面說明我們的私有倉庫已經(jīng)支持cocoaPods了

進入到目標(biāo)工程中創(chuàng)建podfile文件

$ cd /Users/ctzxh/Desktop/test

$ touch podfile

用xcode打開podfile文件悴能,注意不要用mac自身的文本編輯(半角符號莫名變成全角)揣钦。寫入下面的內(nèi)容后保存退出

target "test" do

pod "CTFramework"

end

最后使用下面的命令pod安裝倉庫內(nèi)容

$ pod install ? ? ? ? (如果是第一次安裝使用)

$ pod update ? ? ?(如果是更新使用)

安裝或者更新成功以后,你的目錄看起來是這個樣子漠酿,以后打開工程請使用test.xcworkspace

pod以后的工程目錄

就到這兒吧~

注:中間遇到的坑

- ERROR | [iOS] unknown: Encountered an unknown error (Simulator iPhone 4s is not available.) during validation.

驗證庫的時候報錯冯凹,應(yīng)該是最新版的xcode中已經(jīng)沒有了iPhone 4s的模擬器導(dǎo)致,可以更新cocoapods的版本來解決問題(sudo gem install -n /usr/local/bin cocoapods)


[!] Authentication token is invalid or unverified. Either verify it with the email that was sent or register a new session.

push的時候報錯炒嘲,需要驗證郵箱(pod trunk register 郵箱)宇姚,然后去郵箱驗證下重新執(zhí)行pod trunk push命令即可


如果podspec已經(jīng)推送到遠程,但是使用pod search命令不能搜到上傳的庫夫凸,可以使用

rm ~/Library/Caches/CocoaPods/search_index.json刪除索引浑劳,然后再使用pod search,等一會兒就能出現(xiàn)了


pod install 安裝庫失敗 certificate issued for a different hostname, issuer is not trusted

打開終端(實用工具 –>終端)夭拌,在終端中輸入如下命令(注意url更換成你的url地址):

svn ls https://xxxxxx

然后會出現(xiàn)一個服務(wù)器證書的提示魔熏,根據(jù)提示輸入 “p”,然后回車鸽扁,問題就可以得到解決了蒜绽。之后可能需要輸入對應(yīng)svn的賬號或者密碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市桶现,隨后出現(xiàn)的幾起案子躲雅,更是在濱河造成了極大的恐慌,老刑警劉巖巩那,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吏夯,死亡現(xiàn)場離奇詭異此蜈,居然都是意外死亡,警方通過查閱死者的電腦和手機噪生,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門裆赵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人跺嗽,你說我怎么就攤上這事战授。” “怎么了桨嫁?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵植兰,是天一觀的道長。 經(jīng)常有香客問我璃吧,道長楣导,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任畜挨,我火速辦了婚禮筒繁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘巴元。我一直安慰自己毡咏,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布逮刨。 她就那樣靜靜地躺著呕缭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪修己。 梳的紋絲不亂的頭發(fā)上恢总,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音睬愤,去河邊找鬼离熏。 笑死,一個胖子當(dāng)著我的面吹牛戴涝,可吹牛的內(nèi)容都是我干的滋戳。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼啥刻,長吁一口氣:“原來是場噩夢啊……” “哼奸鸯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起可帽,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤娄涩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓄拣,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡扬虚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了球恤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辜昵。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咽斧,靈堂內(nèi)的尸體忽然破棺而出堪置,到底是詐尸還是另有隱情,我是刑警寧澤张惹,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布舀锨,位于F島的核電站,受9級特大地震影響宛逗,放射性物質(zhì)發(fā)生泄漏坎匿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一雷激、第九天 我趴在偏房一處隱蔽的房頂上張望碑诉。 院中可真熱鬧,春花似錦侥锦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至格嗅,卻和暖如春番挺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背屯掖。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工玄柏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贴铜。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓粪摘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绍坝。 傳聞我的和親對象是個殘疾皇子徘意,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

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