一次慢、下載 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篮灼,會彈出如下對話框:
按照對話框提示步驟:
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)程倉庫
四鲜戒、Local 倉庫使用
選擇Home->Set Me Up->cocoapods-local专控,會彈出如下對話框:
按照對話框提示步驟:
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失敗。
解決辦法:
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倉庫名稱
可參考鏈接: