使用 Artifactory 1分鐘搭建 CocoaPod 私服

痛點


image.png


目前的 CocoaPod 私服,很多公司使用 Git 倉庫進行搭建,這導致的問題是,CocoaPod 的構建產出物通常較大,上傳到 Git 倉庫時,會導致 Git  倉庫持續增大, Git Clone 的速度大大降低,進而導致軟件部署,交付的時間變長,影響了研發上線的效率。

 

不僅如此,您可能還需要爲安卓的開發者搭建 Gradle 倉庫,Java 開發者搭建 Maven 私服,容器團隊搭建 Docker 私服,各個私服獨立維護,佔用大量系統資源,維護成本呈幾何指數增長。


image.png


JFrog Artifactory 能夠解決這個問題,通過搭建 Artifactory,能夠在內網建立統一全語言的私有制品倉庫,支持 CocoaPod,Gradle,Maven,Docker 等等。程序員通過 Artifactory 可以實現全語言的依賴下載,並且可以將構建產出物上傳到 Artifactory 進行管理。



下載 Artifactory


image.png


獲得 Artifactory 的安裝文件很簡單,訪問https://jfrog.com/download-artifactory-pro/, 然後在http://www.jfrogchina.com/artifactory/free-trial/   申請免費試用版 License 即可。可以用 StandAlone 方案安裝,無需配置數據庫即可使用。也支持 RPM,Debian,Docker 的安裝方式。



創建 CocoaPod 倉庫


解壓下載的安裝包後,進入 bin 目錄,執行 artifactory.sh文件,隨後訪問 localhost:8081即可進入 Artifactory 頁面:


image.png


輸入 License 信息,即可開始使用 Artifactory。創建倉庫時,選擇 CocoaPod:


image.png


在此,我們創建兩個倉庫,一個是 CocoaPod Local,目的是存儲所有本地的CocoaPod 構建產出物,另一個是 CocoaPod Remote,能夠作爲外網 CocoaPod 源的本地代理,在內網提供服務。


image.png


在使用 CocoaPod 倉庫之前,需要安裝 cocoapod-art 插件:gem install cocoapod-art。安裝完之後,選擇 CocoaPod Remote 倉庫,右上角點擊 Set Me Up,會彈出如下對話框:


image.png


該對話框裏會提示如何使用該倉庫,包括如何安裝 cocoapod-art 插件,如何在 pod 添加 Artifactory 作爲源:


image.png


然後將Podfile 中添加該源作爲 pod 的依賴解析源:


image.png



下載依賴,上傳構建包到 Artifactory


完成之前步驟之後,再執行 pod install 的時候,可以看到依賴已經被緩存在遠程倉庫:


image.png


在打包 CocoaPod 項目時,我們執行 pod spec create jfrogapp,並且通過 JFrog 的Rest API 上傳到 CocoaPod Local 倉庫,供後面的測試,運維團隊使用該構建包。


image.png
image.png


上傳完成之後,可以看到構建的 tar 包已經被存儲到 Artifactory 的 local 倉庫,而不需要存儲到 Git 倉庫。


image.png


除了全語言的包管理支持,Artifactory 還支持構建包的元數據和漏洞掃描。通過元數據的能力,能夠展示包相關的生命週期數據信息,例如需求 ID,和單元測試覆蓋率,通過率等等指標。


image.png



總結


通過Artifactory CocoaPod 倉庫的使用,能夠快速在公司內網搭建一套 CocoaPod 私服,既可以代理外網依賴,也可以作爲本地私服存儲構建包,並且記錄該構建包管理的需求 ID,單元測試,性能測試等結果,Artifactory 企業版也支持高可用架構的搭建,實現0宕機的私服服務,更重要的是您也可以將 Maven,Docker,NPM 等30多種語言包都存儲在 Artifactory 進行全公司統一管理,標準化交付流水線,提高軟件交付的速度。


試用 JFrog Artifactory 地址:

http://www.jfrogchina.com/artifactory/free-trial/


文章作者:王青,JFrog中國首席架構師

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章