利用Github和CocoaPods搭建私人Pod開(kāi)發(fā)環(huán)境

一直關(guān)注IOS開(kāi)發(fā)多年,開(kāi)始今天的教程。

現(xiàn)在的我的配置如下:

– Mac OSX 10.11.0

– Git (ie: GitHub for Mac Desktop)

– XCode 7.3.1

– CocoaPods 1.0.0

解決CocoaPods版本過(guò)低或升級(jí)問(wèn)題

進(jìn)入終端輸入指令

$ pod install

#[!] The version of CocoaPods used to generate the lockfile (0.39.0) is higher than the version of the current executable (0.35.0). Incompatibility issues may arise.

告知版本太低了烘豌,執(zhí)行更新cocoapod版本指令

$ gem update cocoapod

#Nothing to update

檢查淘寶服務(wù)器地址為https協(xié)議,如果是http請(qǐng)改成https

$ gem sources -r http://ruby.taobao.org/

#http://ruby.taobao.org/ removed from sources

$ gem sources -a https://ruby.taobao.org/

#https://ruby.taobao.org/ added to sources

使用sudo來(lái)執(zhí)行操作看彼,因?yàn)椴僮魇窍到y(tǒng)文件夾加上權(quán)限操作

$ sudo gem update --system

#Updating rubygems-update

#Fetching: rubygems-update-2.5.1.gem (100%)

#Successfully installed rubygems-update-2.5.1

#Parsing documentation for rubygems-update-2.5.1

再執(zhí)行部署cocoapod指令廊佩,時(shí)間會(huì)慢,因?yàn)樾枰獔?zhí)行把所有的cocoapods repo全部download到本地的操作靖榕,應(yīng)該有100M+吧标锄。

$ pod setup

#Setting up CocoaPods master repo

#Setup completed

#[!] CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`

??注意到最后一句,我們?cè)诮K端繼續(xù)敲打指令更新repo茁计,耐心等待??..

$ pod repo update --verbose

#Updating spec repo `master`

#$ /usr/bin/git pull --ff-only

#From https://github.com/CocoaPods/Specs

#a0baa68..9a14a05? master? ? -> origin/master

error: Your local changes to the following files would be overwritten by merge:

#CocoaPods-version.yml

#Specs/1PasswordExtension/1.0.0/1PasswordExtension.podspec.json

#Specs/1PasswordExtension/1.0.1/1PasswordExtension.podspec.json

#Specs/AKUTestKit/1.1.2/AKUTestKit.podspec.json

#Specs/ALCore

#Aborting

#Updating a5c6b67..9a14a05

#[!] CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`

這部分問(wèn)題解決了料皇,現(xiàn)在可以使用pod install 和 pod search xx 進(jìn)行項(xiàng)目pod管理了。

過(guò)度到git版本管理

為了解決大量git指令的晦澀星压,使用GitHub for Mac Desktop解決大部分git版本管理的困難践剂。

創(chuàng)建一個(gè)代碼倉(cāng)庫(kù),在這個(gè)之前需要一個(gè)賬號(hào)和密碼娜膘,填寫(xiě)必要的倉(cāng)庫(kù)地址和相關(guān)信息就一直Next下去吧逊脯。

創(chuàng)建git倉(cāng)庫(kù)頁(yè)面

完成創(chuàng)建倉(cāng)庫(kù)后迫不及待把自己的測(cè)試工程成發(fā)布到git上面,這里我用GitHub for Mac Desktop軟件竣贪,可以很輕松完成版本的發(fā)布工作军洼,這里就不一一贅述了。

git項(xiàng)目首頁(yè)

配置podspec文件

最后一步配置podspec文件演怎,這個(gè)文件描述你要pod trunk到CocoaPods的工程匕争,??CocoaPods 需要0.33版本以上的,用 pod --version 查看爷耀,如果版本低甘桑,需要更新,之前有介紹更新方法畏纲。

pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'

你注冊(cè)的時(shí)候需要替換郵箱和名字扇住,然后順利的話(huà)你會(huì)收到一份郵件,需要點(diǎn)擊驗(yàn)證盗胀。通過(guò)下面指令能驗(yàn)證你的注冊(cè)信息艘蹋。

pod trunk me?

顯示你當(dāng)前的注冊(cè)信息

OK到此為為止我們已經(jīng)在Cocoapods關(guān)聯(lián)相關(guān)信息,cd 進(jìn)入已經(jīng)上傳到GitHub項(xiàng)目的目錄下票灰,執(zhí)行下面指令創(chuàng)建podspec文件女阀。

pod spec create HZWebViewController

會(huì)在當(dāng)前目錄下生成 HZWebViewController.podspec 文件宅荤,然后我們用文本編輯該文檔。

# Be sure to run `pod lib lint HZWebViewController.podspec' to ensure this is a

# valid spec before submitting.

# Any lines starting with a # are optional, but their use is encouraged

# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html

Pod::Spec.new do |s|

s.name? ? ? ? = "HZWebViewController"

s.version? ? ? = "0.0.1"

s.summary ? = "play with cocoaPods"

s.description? = <<-DESC

I play with cocoaPods where this one project

DESC

s.homepage ?= "https://github.com/githubAmount/HZWebViewController"

s.license ?= "MIT"

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

s.author = { "suger" => "gjw_2007@163.com" }

s.platform = :ios, '7.0'

s.source ?= { :git =>"https://github.com/githubAmount/HZWebViewController.git", :tag => s.version.to_s }

s.source_files? = "MyTestCocoaPods/MyObject/**/*.{h,m}"

s.public_header_files = "MyTestCocoaPods/MyObject/**/*.h"

s.requires_arc = true

s.frameworks = "UIKit", "Foundation"

#s.dependency 'Masonry', '~> 0.6.3'

end

終于編寫(xiě)完成文件后浸策,立馬在終端輸入下列指令本地驗(yàn)證

$pod lib lint

解決Error和Warming冯键,比如 " 寫(xiě)成了 “ 等等諸如此類(lèi)問(wèn)題。

驗(yàn)證遠(yuǎn)程庫(kù)是否有效庸汗。

$pod spec lint

看到輸出如下內(nèi)容就成功了

HZWebViewController.podspec passed validation.

驗(yàn)證完畢后現(xiàn)在就要把自己工程push到cocoapods倉(cāng)庫(kù)里惫确,執(zhí)行下面的代碼

$pod trunk push

在push 的時(shí)候會(huì)報(bào)錯(cuò)如下圖所示:

問(wèn)題出現(xiàn)會(huì)報(bào)找不到brach版本0.0.1,這也不難怪因?yàn)槲覀冞€需要對(duì)Github的代碼做版本管理蚯舱,需要對(duì)當(dāng)前的代碼分支出一個(gè)0.0.1并且打上tag改化。

???那就百度如何給自己的倉(cāng)庫(kù)打tag并且提交置Github上,關(guān)鍵代碼如下:

$git tag -a 創(chuàng)建版本 -m "v0.0.1"

#git tag -a TagName -m "vTagNumber"

$git push --tags

好吧問(wèn)題又來(lái)了枉昏,此時(shí)終端提示輸入Github的賬號(hào)和密碼陈肛,我怎么輸入都驗(yàn)證過(guò)不了,一直報(bào)不存在的帳戶(hù)和密碼(排除賬號(hào)密碼錯(cuò)誤的情況)兄裂。我懷疑Github不再支持輸入賬號(hào)密碼訪(fǎng)問(wèn)遠(yuǎn)程倉(cāng)庫(kù)的方法句旱,萬(wàn)念俱灰啊~

繼續(xù)百度中??...

還有另外一種方法不用每次訪(fǎng)問(wèn)遠(yuǎn)程倉(cāng)庫(kù)輸入Github賬號(hào)和密碼的方法,這就是要配置SSH晰奖,通過(guò)本地生成一串RSA訪(fǎng)問(wèn)谈撒。打開(kāi)終端輸入以下指令

$ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

#Creates a new ssh key, using the provided email as a label

#Generating public/private rsa key pair.

下面有個(gè)三個(gè)提示建議用三個(gè)回車(chē)對(duì)應(yīng)

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]

此時(shí)在你的/Users/you/.ssh路徑下會(huì)生成一串RSA,你需要把你私鑰加入你的筆記本SSH Session上畅涂,執(zhí)行下面指令

#start the ssh-agent in the background

$eval "$(ssh-agent -s)"

Agent pid 59566

$ ssh-add ~/.ssh/id_rsa

把公鑰加入Github的帳戶(hù)設(shè)置中,用txt打開(kāi)id_rsa.pub文件把里面的內(nèi)容Copy港华,復(fù)制到下面這個(gè)地方

保存后在終端輸入以下指令

$ssh -T git@github.com

#Attempts to ssh to GitHub

會(huì)有下面的提示,全部yes吧午衰,驗(yàn)證你的ssh

The authenticity of host 'github.com (192.30.252.1)' can't be established.

RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.

Are you sure you want to continue connecting (yes/no)?

The authenticity of host 'github.com (192.30.252.1)' can't be established.

RSA key fingerprint is nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.

Are you sure you want to continue connecting (yes/no)?

最后驗(yàn)證成后會(huì)提示以下:

Hi username! You've successfully authenticated, but GitHub does not

provide shell access.

OK立宜,現(xiàn)在我們重新回到打標(biāo)簽的步驟,重新吧標(biāo)簽打到我們遠(yuǎn)程倉(cāng)庫(kù)上臊岸,此時(shí)應(yīng)該順利打上0.0.1標(biāo)簽了~

打完標(biāo)簽記得使用Github的GUI打出一份分支記得也是0.0.1版本橙数。

此時(shí)再回到pod trunk push 步驟重新執(zhí)行一遍。

如果你人品比較好的話(huà)帅戒,此時(shí)你的項(xiàng)目可以順利發(fā)布到cocoapods上面了灯帮,記得到這里來(lái)認(rèn)領(lǐng)你的項(xiàng)目哦https://trunk.cocoapods.org/claims/new

此時(shí)你再使用pod search yourProject 應(yīng)該是能搜索使用了啊~~~

如果有任何問(wèn)題請(qǐng)郵我,地址gjw_2007@163.com逻住,thx.

(完)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钟哥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瞎访,更是在濱河造成了極大的恐慌腻贰,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扒秸,死亡現(xiàn)場(chǎng)離奇詭異播演,居然都是意外死亡冀瓦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)写烤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)翼闽,“玉大人,你說(shuō)我怎么就攤上這事洲炊「芯郑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵选浑,是天一觀(guān)的道長(zhǎng)蓝厌。 經(jīng)常有香客問(wèn)我,道長(zhǎng)古徒,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任读恃,我火速辦了婚禮隧膘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寺惫。我一直安慰自己疹吃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布西雀。 她就那樣靜靜地躺著萨驶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪艇肴。 梳的紋絲不亂的頭發(fā)上腔呜,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音再悼,去河邊找鬼核畴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛冲九,可吹牛的內(nèi)容都是我干的谤草。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼莺奸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼丑孩!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起灭贷,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤温学,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后氧腰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體枫浙,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刨肃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了箩帚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片真友。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖紧帕,靈堂內(nèi)的尸體忽然破棺而出盔然,到底是詐尸還是另有隱情,我是刑警寧澤是嗜,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布愈案,位于F島的核電站,受9級(jí)特大地震影響鹅搪,放射性物質(zhì)發(fā)生泄漏站绪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一丽柿、第九天 我趴在偏房一處隱蔽的房頂上張望恢准。 院中可真熱鬧,春花似錦甫题、人聲如沸馁筐。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)敏沉。三九已至,卻和暖如春炎码,著一層夾襖步出監(jiān)牢的瞬間盟迟,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工辅肾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留队萤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓矫钓,卻偏偏與公主長(zhǎng)得像要尔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子新娜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • 項(xiàng)目組件化赵辕、平臺(tái)化是技術(shù)公司的共同目標(biāo),越來(lái)越多的技術(shù)公司推崇使用pod管理第三方庫(kù)以及私有組件概龄,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 21,750評(píng)論 0 39
  • 一还惠、創(chuàng)建的github倉(cāng)庫(kù)原文地址 1 進(jìn)入Github網(wǎng)站www.github.com登陸自己的賬號(hào)后 2 建立...
    freesan44閱讀 3,932評(píng)論 2 12
  • 最近在學(xué)習(xí)vue.js的時(shí)候發(fā)現(xiàn),vue的組件化的思想對(duì)于編寫(xiě)代碼是一個(gè)非常有用的事情私杜。 首先為什么需要組件化蚕键? ...
    拂曉的云閱讀 7,172評(píng)論 6 23
  • 看了簡(jiǎn)書(shū)不少文章小說(shuō)救欧,也寫(xiě)過(guò)一點(diǎn)發(fā)表在各個(gè)平臺(tái),感覺(jué)還有很多需要改進(jìn)的地方锣光,仔細(xì)想想很多問(wèn)題都是小學(xué)作文培訓(xùn)出來(lái)的...
    抱抱熊melody閱讀 243評(píng)論 1 9
  • 2017年1月24日 @NYC 《村居》(宋 張舜民)水繞陂天朱繞籬笆怠,榆錢(qián)落盡槿花稀。夕陽(yáng)牛背無(wú)人臥誊爹,帶得寒鴉兩兩...
    Tess同學(xué)閱讀 216評(píng)論 0 0