痛点


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java


目前的 CocoaPod 私服,很多公司使用 Git 仓库进行搭建,这导致的问题是,CocoaPod 的构建产出物通常较大,上传到 Git 仓库时,会导致 Git  仓库持续增大, Git Clone 的速度大大降低,进而导致软件部署,交付的时间变长,影响了研发上线的效率。

 

不仅如此,您可能还需要为安卓的开发者搭建 Gradle 仓库,Java 开发者搭建 Maven 私服,容器团队搭建 Docker 私服,各个私服独立维护,占用大量系统资源,维护成本呈几何指数增长。


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_02


JFrog Artifactory 能够解决这个问题,通过搭建 Artifactory,能够在内网建立统一全语言的私有制品仓库,支持 CocoaPod,Gradle,Maven,Docker 等等。程序员通过 Artifactory 可以实现全语言的依赖下载,并且可以将构建产出物上传到 Artifactory 进行管理。



下载 Artifactory


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_03


获得 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 页面:


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_04


输入 License 信息,即可开始使用 Artifactory。创建仓库时,选择 CocoaPod:


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_05


在此,我们创建两个仓库,一个是 CocoaPod Local,目的是存储所有本地的CocoaPod 构建产出物,另一个是 CocoaPod Remote,能够作为外网 CocoaPod 源的本地代理,在内网提供服务。


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_06


在使用 CocoaPod 仓库之前,需要安装 cocoapod-art 插件:gem install cocoapod-art。安装完之后,选择 CocoaPod Remote 仓库,右上角点击 Set Me Up,会弹出如下对话框:


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_07


该对话框里会提示如何使用该仓库,包括如何安装 cocoapod-art 插件,如何在 pod 添加 Artifactory 作为源:


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_08


然后将Podfile 中添加该源作为 pod 的依赖解析源:


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_09



下载依赖,上传构建包到 Artifactory


完成之前步骤之后,再执行 pod install 的时候,可以看到依赖已经被缓存在远程仓库:


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_10


在打包 CocoaPod 项目时,我们执行 pod spec create jfrogapp,并且通过 JFrog 的Rest API 上传到 CocoaPod Local 仓库,供后面的测试,运维团队使用该构建包。


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_11还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_12


上传完成之后,可以看到构建的 tar 包已经被存储到 Artifactory 的 local 仓库,而不需要存储到 Git 仓库。


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_13


除了全语言的包管理支持,Artifactory 还支持构建包的元数据和漏洞扫描。通过元数据的能力,能够展示包相关的生命周期数据信息,例如需求 ID,和单元测试覆盖率,通过率等等指标。


还在使用 Git 仓库作为 CocoaPod 私服?--使用 Artifactory 1分钟搭建 C_java_14



总结


通过Artifactory CocoaPod 仓库的使用,能够快速在公司内网搭建一套 CocoaPod 私服,既可以代理外网依赖,也可以作为本地私服存储构建包,并且记录该构建包管理的需求 ID,单元测试,性能测试等结果,Artifactory 企业版也支持高可用架构的搭建,实现0宕机的私服服务,更重要的是您也可以将 Maven,Docker,NPM 等30多种语言包都存储在 Artifactory 进行全公司统一管理,标准化交付流水线,提高软件交付的速度。