使用 Artifactory 搭建 CocoaPod 私服

一次慢、下載 Artifactory

下載鏈接:
https://jfrog.com/download-artifactory-pro/
選擇“ARTIFACTORY PRO STANDALONE”方案安裝魄鸦,無需配置數(shù)據(jù)庫即可使用。

申請鏈接:
http://www.jfrogchina.com/artifactory/free-trial/
電子郵件:163郵箱不行湿痢,可以填寫QQ郵箱
申請免費試用版 License慕爬,申請成功后膀斋,到郵箱中查看郵件。

二会喝、創(chuàng)建 CocoaPod 倉庫

解壓下載的安裝包陡叠,進(jìn)入 bin 目錄,執(zhí)行 artifactory.sh文件(拖動artifactory.sh文件到終端肢执,回車即可)
隨后訪問 localhost:8081枉阵,即可進(jìn)入 Artifactory 頁面。
默認(rèn)用戶名:admin 密碼:password预茄。

輸入 License 信息(在郵箱郵件中)兴溜,即可開始使用 Artifactory。
創(chuàng)建倉庫時耻陕,選擇 CocoaPods:

在此拙徽,創(chuàng)建了兩個倉庫,一個是 CocoaPod Local诗宣,目的是存儲所有本地的CocoaPod 構(gòu)建產(chǎn)出物膘怕,另一個是 CocoaPod Remote,能夠作為外網(wǎng) CocoaPod 源的本地代理召庞,在內(nèi)網(wǎng)提供服務(wù)岛心。

三、Remote 倉庫使用

選擇Home->Set Me Up->cocoapods-remote篮灼,會彈出如下對話框:


WechatIMG4.jpeg

按照對話框提示步驟:

1忘古、執(zhí)行下面命令,安裝 cocoapod-art 插件

gem install cocoapods-art

2诅诱、右上角:Type password 髓堪,輸入默認(rèn)密碼:password
打開/Users/用戶名/下的.netrc文件(.netrc文件默認(rèn)是隱藏文件),將彈框中的內(nèi)容復(fù)制添加得到.netrc文件中,保存干旁。

machine localhost
login admin
password xxxxxxxxxxxx

3驶沼、執(zhí)行下面命令,等待完成提示出現(xiàn)“Successfully added repo cocoapods-remote”争群。

pod repo-art add cocoapods-remote "http://localhost:8081/artifactory/api/pods/cocoapods-remote"

4商乎、將 Podfile 中添加該源作為 pod 的依賴解析源:

platform :ios, '8.0'
inhibit_all_warnings!

#use_frameworks!

plugin 'cocoapods-art', :sources => [
  'cocoapods-remote'
]

target 'testProject' do

pod 'AFNetworking', '~> 3.1.0'

end

5、執(zhí)行:pod install 或者 執(zhí)行不升級CocoaPods的spec倉庫的方式祭阀。

pod install --verbose --no-repo-update 

6、可以看到依賴已經(jīng)被緩存在遠(yuǎn)程倉庫


20190106124041833.png

四鲜戒、Local 倉庫使用

選擇Home->Set Me Up->cocoapods-local专控,會彈出如下對話框:


WechatIMG5.png

按照對話框提示步驟:

1、在 Remote 倉庫使用過程已經(jīng)執(zhí)行遏餐,不需要再次執(zhí)行

2伦腐、在 Remote 倉庫使用過程已經(jīng)執(zhí)行,不需要再次執(zhí)行

3失都、執(zhí)行下面命令柏蘑,等待完成提示出現(xiàn)“Successfully added repo cocoapods-local”。

pod repo-art add cocoapods-local "http://localhost:8081/artifactory/api/pods/cocoapods-local"

4粹庞、使用下面命令壓縮pod包咳焚,pod包中包含 項目代碼 or framework、boundle庞溜,以及.podspec or .podspec.json:

COPYFILE_DISABLE=1 tar czvf 壓縮后名稱.tar.gz 待壓縮文件名稱

5革半、使用下面的Artifactory's REST API將 壓縮后名稱.tar.gz 上傳到Local 倉庫。

curl -u<USERNAME>:<PASSWORD> -XPUT http://localhost:8081/artifactory/cocoapods-local/<TARGET_FILE_PATH> -T <PATH_TO_FILE>

6流码、將 Podfile 中添加該源作為 pod 的依賴解析源又官。

platform :ios, '8.0'
inhibit_all_warnings!

#use_frameworks!

plugin 'cocoapods-art', :sources => [
  # 指定local倉庫
  'cocoapods-local'
]

target '項目名稱' do
# 指定pod內(nèi)容 與 版本號
pod '壓縮后名稱', '0.0.1'

end

7、執(zhí)行漫试。

pod install

五六敬、分支管理
每個項目使用多個Artifactory local倉庫,dev-debug-local倉庫驾荣、produce-debug-local倉庫外构、produce-release-local倉庫代替git中的分支概念,每個local倉庫中使用版本號來進(jìn)行管理秘车。

六典勇、權(quán)限管理
Artifactory有權(quán)限管理模塊,可以創(chuàng)建權(quán)限目標(biāo)對象叮趴,對不同項目設(shè)置不同用戶的不同權(quán)限割笙。
Managing Permissions

七、注意事項
1、Local倉庫使用第5步伤溉,將tar.gz上傳到Local倉庫后般码,需要注意查看Local倉庫tar.gz下,是否包含.DS_Store or ._.DS_Stroe or ._xxxxx等隱藏文件乱顾。
.DS_Store是Mac系統(tǒng)保存文件夾自定義屬性的隱藏文件,
._xxxxx是壓縮過程中出現(xiàn)的
如果包含上述文件板祝,會導(dǎo)致pod install失敗。


WechatIMG6.png
解決辦法:
1走净、在linux系統(tǒng)下壓縮為tar.gz券时,應(yīng)該沒有此問題
2、在Windows系統(tǒng)下伏伯,使用7-zip工具壓縮為tar.gz
3橘洞、在Mac系統(tǒng)下:
(1)刪除.DS_Store
// 刪除當(dāng)前文件及子文件夾中的.DS_Store文件
find . -name '*.DS_Store' -type f -delete
(2)壓縮
COPYFILE_DISABLE=1 tar czvf 壓縮后名稱.tar.gz 待壓縮文件名稱

2、podspec文件的編寫與cocoapods + git的規(guī)范完全一致说搅。Podspec Syntax Reference
(1)只需要修改homepage部分炸枣,改為四、Local 倉庫使用中弄唧,第5步适肠,-XPUT與-T之間的地址。
(2)source可以仍為之前cocoapods + git建立私庫的地址候引,podspec上傳到local倉庫后侯养,Artifactory會將source內(nèi)容轉(zhuǎn)換成他們自己的地址。(注:經(jīng)測試source不填寫git地址也是可以的澄干,如:spec.source = { :git => "", :tag => "#{spec.version}" })

3沸毁、向Local 倉庫上傳新版本后,需要先執(zhí)行下面命令傻寂,再執(zhí)行pod install來pod新版本息尺。

pod repo-art update local倉庫名稱 

可參考鏈接:

還在使用 Git 倉庫作為 CocoaPod 私服?--使用Artifactory 1分鐘搭建 CocoaPod 私服

CocoaPods Repositories

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疾掰,一起剝皮案震驚了整個濱河市搂誉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌静檬,老刑警劉巖炭懊,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拂檩,居然都是意外死亡侮腹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門稻励,熙熙樓的掌柜王于貴愁眉苦臉地迎上來父阻,“玉大人愈涩,你說我怎么就攤上這事〖用” “怎么了履婉?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斟览。 經(jīng)常有香客問我毁腿,道長,這世上最難降的妖魔是什么苛茂? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任已烤,我火速辦了婚禮,結(jié)果婚禮上妓羊,老公的妹妹穿的比我還像新娘草戈。我一直安慰自己,他們只是感情好侍瑟,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丙猬,像睡著了一般涨颜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上茧球,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天庭瑰,我揣著相機(jī)與錄音,去河邊找鬼抢埋。 笑死弹灭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的揪垄。 我是一名探鬼主播穷吮,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饥努!你這毒婦竟也來了捡鱼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤酷愧,失蹤者是張志新(化名)和其女友劉穎驾诈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溶浴,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡乍迄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了士败。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闯两。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出生蚁,到底是詐尸還是另有隱情噩翠,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布邦投,位于F島的核電站伤锚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏志衣。R本人自食惡果不足惜屯援,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望念脯。 院中可真熱鬧狞洋,春花似錦、人聲如沸绿店。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽假勿。三九已至借嗽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間转培,已是汗流浹背恶导。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留浸须,地道東北人惨寿。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像删窒,于是被迫代替她去往敵國和親裂垦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

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