使用CocoaPods快速开发

使用工件存储库管理器的10个理由

执行概要

在CocoaPods出现之前,在Xcode项目中使用第三方组件涉及大量手工和容易出错的工作,以保持组件及其依赖关系的最新和相互一致。CocoaPods根据项目所需的pod的简单规范解析和下载依赖项,使事情变得更简单。然而,CocoaPods仍然面临着一些挑战,比如在网络或存储库宕机的情况下访问pod和规范、管理安全性、优化构建、支持额外的包格式等等。这些挑战由环球JFrog Artifactory来应对工件存储库管理器它的功能是作为一个单一的访问点来组织所有的二进制资源,包括专有库、远程工件和其他第三方资源,特别是pod和podspecs。2022世界杯阿根廷预选赛赛程完全支持CocoaPods客户端,人工透明地替换您的CocoaPods存储库在使用CocoaPods和开源库进行开发时提高组织的生产力。

可靠和一致地访问包
CocoaPods主库和GitHub是使用CocoaPods进行开发的宝贵资源,但作为外部资源,它们可能2022世界杯阿根廷预选赛赛程不是
如果出现中断或网络问题,则无法访问。
Artifactory通过将远程工件缓存在2022世界杯阿根廷预选赛赛程远程存储库”;充当远程资源代理的本地缓存,从而消除对资源本身或网络的依赖。
减少网络流量和优化构建
许多开发人员和构建机器/CI服务器不断下载组件会产生大量网络流量并减慢构建速度。 一旦Artifactory下载了一个组件,所有开发人员和构建工具/CI服务器都可以在本地使用它,从而大大减少了网络流量并加快了构建过程。
完全支持Docker
随着Docker越来越受欢迎,您可能会发现自己比您想象的更快地加入了这一潮流。所以现在您需要管理pod和podspecs
码头工人的图像。
除了支持CocoaPods, Artifactory还是一个完全成熟的Docker注册表,支持所有Docker注册表api.在那里
不需要附加额外的工具来同时支持pod和Docker镜像。
与您的构建生态系统完全集成
无论构建生态系统是如何构建的,您的构建系统(每天运行几个构建)必须能够轻松访问您的pod和podspecs。 通过一组插件,Artifactory与当今常用的大多数构建工具和CI系统紧密集成
内部部署或云中。这些集成使Artifactory能够生成详尽的构建信息,从而实现完全的可再现性
构建。
安全和访问控制
每个组织都需要实现安全策略,以便人们只能访问他们被授权使用的内部和外部资源。2022世界杯阿根廷预选赛赛程 Artifactory在多个级别上提供安全性和访问控制。Artifactory使用“包括”和“排除”模式、团队和权限,以及与常见访问协议(如LDAP、SAML和Crowd)的集成,提供了细粒度的服务
访问控制,从限制完整的存储库到限制单个工件,从任何大小的组到
单个开发人员。
在整个组织中分发和共享工件
为了充分利用您的开发成果,您需要与组织中的其他开发人员和团队共享您的内部开发的pod。 使用局部存储库Artifactory为您提供了一个中央位置来存储您的内部二进制文件,以便所有团队都可以访问
从单个URL获取工件。为了支持远程团队,Artifactory提供了推式和拉式复制。
智能搜索和人工查询语言
考虑到在任何软件开发组织中可能积累的大量包,找到特定的东西有时会变得相当复杂。 Artifactory提供了多种搜索选项,从简单的名称搜索到常见的内置搜索功能,如“最新”
版本搜索”。Artifactory还提供独特的服务按校验和搜索人工查询语言(AQL)将搜索带到new
级别提供了一种基于任意数量的参数来制定复杂查询的简单方法。
高可用性
作为组织中的关键任务组件,存储库管理器中的任何停机时间都可能对组织的生产力产生严重后果。 Artifactory可以部署在具有两个或更多服务器的高可用性配置中,这些服务器可以将您的正常运行时间提高到
5个9的可用性。
维护和监控
你生成的豆荚数量可以快速增长。如果没有适当的管理,您的系统很快就会被旧的和不相关的pod堵塞。 Artifactory通过自动、计划的清理过程、监控和限制设置,使您的系统免于混乱
磁盘空间使用,以及在最关键的pod上定义“监视”的能力。
适用于所有二进制文件的通用端到端解决方案
没有一种包装格式或技术足以支持现代组织中的开发。管理所有不同打包格式的二进制文件并进行集成
生态系统中所有移动的部分都可能成为维护的噩梦。
作为一个通用的存储库管理器,Artifactory支持所有主要的打包格式,包括CocoaPods,并集成了所有主要的构建工具和CI服务器。Artifactory还集成了通用分发平台JFrog Bintray。它们一起形成了一个通用的、完全自动化的软件分发管道。

总结

JFrog Artifactory是一个通用的工件存储库,它支持使用CocoaPods进行Apple平台的软件开发,以及当今常用的所有其他打包格式。Artifactory与所有主要的构建工具和CI服务器集成在一起,可以作为任何开发生态系统中的中心枢纽,通过高可用性配置提供无与伦比的稳定性,并提供对软件工件的可靠和一致的访问。通过管理和优化对pod和podspec的访问,Artifactory提高了您组织的开发和DevOps团队的生产力。Artifactory还与通用软件分发平台JFrog Bintray紧密集成。Artifactory和Bintray一起为使用CocoaPods或任何其他开发技术的软件开发和分发提供了最全面的端到端解决方案。

介绍

使用第三方开源组件在成本和代码质量方面的好处是众所周知的。然而,如果没有正确的依赖管理器,使用第三方组件就会涉及到大量的手工和容易出错的工作,以保持所有这些组件的最新状态和相互一致。CocoaPods进入Xcode项目的这个领域,使与第三方库的合作变得容易。将源文件复制到Xcode项目中,然后手动更新项目的依赖项,取而代之的是一个简单的依赖项和pod规范,供CocoaPods管理。CocoaPods管理解析和下载您需要的不同库之间的依赖关系,保持版本更新,搜索新库,并且通常使使用第三方组件的开发更易于管理。然而,CocoaPods无法克服的问题是:

  • 如果CocoaPods的主仓库或GitHub无法访问,会发生什么,无论他们是遇到停机还是仅仅是网络问题?
  • 如何优化需要数百(或数千)依赖项的构建?
  • 如何防止两个(或200个)开发者下载同一个pod?
  • 如何管理对内部创建的pod的访问控制?
  • 你如何找到一个特定的pod,因为他们的数量在你的组织中成倍增加?
  • 您如何与站点上的团队以及地理位置较远的团队共享内部pod ?
  • CocoaPods可能能够管理您的pod和podspecs,但是如何管理您的Docker映像和其他来自您可能使用的其他开发技术的包呢?

所有这些问题的答案都是JFrog Artifactory,它是通用存储库管理器,作为一个单一的访问点来组织所有的二进制资源,包括专有库、远程工件和其他第三方资源,特别是pod和podspecs。2022世界杯阿根廷预选赛赛程Artifactory完全支持CocoaPods客户端,透明地取代了您的CocoaPods存储库,以应对这些挑战,并在使用CocoaPods和开源库进行开发时提高您组织的生产力。

01 |可靠和一致的访问Podspecs和Pods

为了管理项目的依赖关系,CocoaPods客户端需要访问远程Specs存储库,比如publicCocoaPods规格GitHub上的存储库。然后,CocoaPods需要访问也托管在远程资源(通常也在GitHub上)上的依赖pod本身。2022世界杯阿根廷预选赛赛程这意味着要构建一个项目,你依赖于外部网络访问和GitHub的启动和可用,这两者都存在潜在的故障点。像GitHub2022世界杯阿根廷预选赛赛程这样的远程资源可能会中断,并且网络访问并不总是得到保证,在这两种情况下,您的工作可能会陷入停顿。

远程存储库

远程存储库充当GitHub等远程站点管理的存储库的缓存代理。根据控制缓存和代理行为的各种配置参数,在远程存储库中存储和更新构件。
了解更多>

JFrog Artifactory是开发人员和外部资源之间的中介。2022世界杯阿根廷预选赛赛程作为一名开发人员,您的所有请求都指向Artifactory, Artifactory通过将远程工件缓存到本地,为您提供了对远程工件的快速和一致的访问远程存储库.由于远程工件随时可以从本地网络的缓存中获得,因此您独立于外部网络问题,并且如果GitHub或任何其他远程资源出现故障,也不会受到影响。即使在远程资源完全不存在的极端情况下,已经下载到本地缓存的任何工件仍然对您可用。作为一名开发人员,您可以继续您的开发工作,并且您的构建不会受到网络问题或存储库故障的阻碍。

使用CocoaPods快速开发

02 |减少网络流量,优化构建

由于您的大部分代码可能是组装而不是构建的,因此您希望确保对从外部资源下载的pod的使用进行了优化。2022世界杯阿根廷预选赛赛程两个(或200个)开发人员使用同一个pod单独下载它是没有意义的。

除了可靠性之外,远程存储库的另一个好处是减少了联网。一旦下载了包,组织中的所有其他开发人员就可以在本地使用它(从而减少了网络流量)。当然,这对单个开发人员来说都是透明的。一旦通过Artifactory访问pod,开发人员就可以继续做自己最擅长的工作,剩下的就交给Artifactory。

如果我们从a的角度来看网络流量构建服务器,其好处是显而易见的。一个典型的项目可能依赖于来自外部资源的数十甚至数百个pod。2022世界杯阿根廷预选赛赛程为了让服务器构建这些项目,所有远程工件必须对服务器环境可用。下载所有这些必需的构件可能会在网络上产生千兆字节的数据流量,这会花费大量的时间来延迟构建过程。通过在本地缓存远程构件,构建过程要快得多,并且需要的网络连接要少得多。

使用CocoaPods快速开发

03 |全面支持Docker

随着Docker技术的不断发展,它的使用也在不断增长。如果您还没有在您的组织中使用Docker,那么您很可能很快就会这样做。因此,现在除了管理CocoaPods包之外,还需要管理Docker映像。但不需要再安装和维护另一个工具。Artifactory是一个完全成熟的Docker存储库,支持所有Docker Registry api。这允许Docker客户端直接与Artifactory一起工作,为企业Docker用户提供了几个好处。

使用本地存储库,您可以分发和共享图像在您的组织内,使管理不同团队之间的图像容易。您甚至可以将Docker注册表复制到Artifactory的远程实例中,以便与地理位置较远的站点的同事共享映像。

Artifactory提供细粒度的访问通过安全的“docker push”和“docker pull”有效地提供对组织图像的控制安全、私有的Docker注册表超过Docker可信注册表提供的安全性。使用Artifactory,而不是Docker Hub上的私有存储库,消除了与互联网连接相关的任何问题可靠和一致的访问图像.当在一个高可用性配置Artifactory为您的Docker镜像提供业界无与伦比的系统稳定性和可用性。

Artifactory的智能搜索可以很容易地找到存储在系统中的任何Docker映像。对Docker注册API的全面支持支持使用Docker客户端进行基本搜索,但Artifactory提供的功能更多。内置搜索可以通过单击操作满足常见需求,自定义属性提供了满足各种特定需求的灵活性,Artifactory Query Language提供了一种简单的方法来制定复杂的查询,让您可以根据任何标准集找到图像。

无论您是已经开始使用Docker还是正在评估如何将其引入您的组织,一旦您使用Artifactory来管理您的CocoaPods包,您就已经涵盖了Docker映像。

04 |与您的构建生态系统完全集成

虽然让开发人员轻松高效地访问pod很重要,但对于可能每天多次运行构建的构建系统来说,这一点更为重要。

通过一组插件,Artifactory提供了与当今流行的CI系统(如Jenkins、Bamboo和TeamCity)的紧密集成。这些系统在创建构建时使用Artifactory提供构件并解析依赖项,并且还将其作为将构建输出部署到相应的本地存储库的目标。

通过Artifactory运行构建的主要好处之一是完全可复制的构建。Artifactory存储详尽的构建信息,包括特定的工件版本、模块、依赖项、系统属性、环境变量、用户信息、时间戳等等。有了这些信息,就很容易在任何时候忠实地再现构建。此外,使用内置的“Diff”工具,您可以比较构建,从而确切地知道从一个版本到另一个版本引入了哪些更改。当试图追踪特定版本中报告的错误时,这些功能是无价的。

Artifactory还简化了发布管理。一系列简单的设置配置了诸如分级、构建升级、VCS标记等,基本上自动化了发布管理过程。

但是,如果您使用的是基于云的CI系统,而您不能应用插件,会发生什么呢?在这种情况下,Artifactory直接为构建工具本身提供插件,这最终提供了相同级别的构建自动化。从本质上讲,由于Artifactory与平台无关,它可以与组织内所有构建生态系统中的通用工具集成。最后,一旦您的构建实现自动化,Artifactory将根据组织的维护策略清理旧的构建,从而使您的系统免于混乱。

与您的构建生态系统完全集成

05 |安全与访问控制

如果你想控制对pod的访问,你需要使用GitHub上的私有存储库。但是这样做的结果是,在Podspecs Registry中有许多指针对大多数用户来说是空白的,因为它们指向其他人的私有存储库。然后,你真的想让你的私有GitHub存储库的指针公开可用吗?

Artifactory为CocoaPods提供了完整的安全解决方案。作为第一道防线,Artifactory允许您使用命名模式来定义访问的“排除”和“包含”,这样您就可以控制哪些包可以缓存到任何特定的远程存储库中。然后,您可以为用户和组分配不同的权限集,以控制对每个存储库的访问。您甚至可以使用Artifactory与LDAP、Active Directory、SAML、Crowd等的集成来控制对服务器的访问。Artifactory有效地成为您自己的私有和安全的内部CocoaPods存储库。

06 |在整个组织中分发和共享pod

远程存储库代理CocoaPods规范库和GitHub上的其他pod库。这样可以确保pods只下载一次,然后在整个组织中共享。同样的原则也适用于您自己的专有pod,您也希望能够与组织中的其他人安全地共享这些pod。

局部存储库

本地存储库是物理的、本地管理的存储库,您可以在其中部署构件。通常
它们用于部署内部和外部版本以及开发构建,但它们也可以用于存储在公共存储库(如第三方商业组件)上不广泛可用的包。使用本地存储库,所有内部资源都可以从跨组织的单个访问点从一个公共URL获得。2022世界杯阿根廷预选赛赛程
了解更多>

使用局部存储库Artifactory给你一个中央位置来存储你的内部舱。当所有团队都知道任何pod都可以从一个URL访问时,访问本地pod和管理不同团队之间的依赖关系就变得非常容易了。但是,如果您希望与组织中地理位置较远的同事共享您的pod,该怎么办呢?

Artifactory支持将您的存储库复制到本地网络之外的Artifactory的另一个实例。复制的存储库会定期自动与其源同步,这样您的pod就可以提供给世界各地的不同团队,无论他们位于何处。

07 |智能搜索和人工查询语言(AQL)

使用第三方pod可能会变得相当复杂。在不同开发人员下载的许多pod和您在自己的组织中开发的内部pod之间,找到特定的东西可能会成为相当大的挑战。

Checksum-based搜索

Artifactory支持通过校验和搜索包的强大功能,这要归功于通过校验和存储文件的独特方法。即使二进制文件已被重命名、移动或甚至部署到组织外部,您也可以将其追溯到原始版本并获得其完整的构建信息。只需通过校验和工具运行包(MD5和SHA1都支持),并在Artifactory中运行“校验和”搜索以检索原始版本。
了解更多>

人工查询语言(AQL)

AQL是一种灵活的查询语言,它提供了一种简单的方法来制定复杂的查询,以便使用任意数量的搜索条件、过滤器、排序选项和输出字段在存储库中进行搜索。它充分利用了Artifactory独特架构下的数据库,并为您提供了无限的自由度,可以精确地制定正确的查询,以找到您正在搜索的那些非常具体的包。这是其他二进制存储库无法提供的。
了解更多>

Artifactory为您提供了灵活的搜索功能,以帮助您查找存储在系统中的pod。首先,Artifactory支持CocoaPods规范,因此您对包的最基本搜索与您习惯使用CocoaPods客户机的方式完全相同。然后,您可以根据任何固有属性组合查找包,例如名称,版本,时间戳,校验和以及Artifactory存储的关于豆荚的各种其他属性。Artifactory还允许您为组件分配任意一组自定义属性,这些属性以后可以用于搜索。例如,您可以用“已发布”属性标记产品发布中使用的组件的所有特定版本,以便在以后轻松地重现已发布的版本。但是搜索的全部功能都伴随着完全的灵活性AQL.使用AQL,您可以定义任何复杂程度的搜索查询,以提取您正在寻找的正确pod。

08 |系统稳定可靠,具有人工高可用性

存储库管理器在pod和其他包的管理中扮演着如此重要的角色,它可以成为组织的关键任务组件,这意味着任何停机时间都可能产生严重的后果。

高可用性系统

对于组织来说,被认为是关键任务的系统可以部署在高可用性配置中,以提高稳定性和可靠性。这是通过复制系统中的节点并将它们部署为冗余集群来实现的,以消除任何单个节点上的完全可靠性。在高可用性配置中,不存在单点故障。如果任何特定节点发生故障,系统将继续通过剩余的冗余节点对用户无缝透明地运行,而不会停机或降低整个系统的性能。
了解更多>

Artifactory支持高可用性在同一局域网中使用2个或更多Artifactory服务器集群的网络配置。冗余网络体系结构意味着不存在单点故障,只要至少有一个Artifactory节点可以运行,系统就可以继续运行。这最大限度地延长了您的正常运行时间,并可以将其提高到“五个9”可用性的级别。此外,您的系统可以在不影响性能的情况下适应更大的负载突发。有了水平服务器可伸缩性,随着组织的增长,您可以轻松地增加容量以满足任何负载需求。通过使用具有多个服务器的体系结构,Artifactory HA允许您执行大多数维护任务,而不会导致系统停机。

系统稳定可靠,具有人工高可用性

维护与监控

在当前使用构建服务器和CI系统的情况下,生成的pod数量可能会快速增长。如果没有适当的管理,您的系统很快就会被旧的和不相关的工件堵塞。

Artifactory通过自动、定时的清理过程使您的系统保持有序和整洁。通过一些简单的设置,您可以安排任务来清理旧的构建和未使用的pod。您可以设置限制并监视磁盘空间的使用情况,或者定义“监视”,以便在最关键的pod发生变化时接收警报。通过广泛的REST API, Artifactory实际上可以支持您希望在组织脚本中实现的任何基于规则的清理协议。

一个通用的,端到端解决方案的所有二进制

没有一种包装格式或技术足以支持现代组织中的开发。有多种格式、多种构建工具、不同的持续集成系统和其他技术可以用于构建灵活且可维护的软件开发生态系统。管理所有不同打包格式的二进制文件并与生态系统的所有移动部分集成可能成为维护的噩梦。

Artifactory从头开始设计,以适应任何开发生态系统。Artifactory独特地构建在基于校验和的存储上,支持任何存储库布局,因此可以为任何打包格式提供本机级别的支持。从本质上讲,无论您使用哪种打包格式,Artifactory都可以存储和管理二进制文件,并且对相应的打包客户端是透明的。客户端使用Artifactory的方式与使用本机存储库的方式完全相同。例如,如果您正在使用CocoaPods, Artifactory代理GitHub上的公共远程Podspecs和pod存储库,让您将自己的pod存储在本地CocoaPods存储库中,并透明地与CocoaPods客户端一起工作。如果你正在使用Docker, Artifactory代理Docker Hub(或任何其他远程公共Docker资源),让你在本地Docker存储库中存储和管理自己的映像,并透明地与Docker客户端一起工作。类似的还有npm, Vagrant, NuGet, Ruby, Debian, YUM, Python等等。

但是开发只是软件交付管道的一端。在一个包成为一个产品之前,它需要经历构建和集成的过程。市场上有许多构建和集成工具,但只有一种产品可以与它们全部兼容。通过一组插件,Artifactory提供了与当今流行的CI系统(如Jenkins、Bamboo和TeamCity)的紧密集成。这些系统在创建构建时使用Artifactory提供构件并解析依赖项,同时也作为部署构建输出的目标。为了支持您无法在其上应用插件的基于云的CI系统,Artifactory为您使用的构建工具(如Maven和Gradle)提供了插件,这些工具最终提供了相同级别的构建自动化。这就解决了开发和部署的问题,但是一旦软件准备好了,如何分发它呢?这就是Bintray的作用。

Bintray是JFrog的云下载中心,提供快速的CDN下载、细粒度的访问控制、详细的统计和日志以及广泛的REST API。从Artifactory推广发行版是一个点击一下或调用API的问题。像Artifactory一样,Bintray与包无关,可以与所有不同的包客户端无缝地工作,因此它可以完全集成到任何持续集成/持续交付生态系统中。

Artifactory是一个通用存储库。它是位于开发生态系统中心的单一工具,与所有不同的技术“对话”,提高生产力,减少维护工作并促进不同部分之间的自动化集成。Artifactory和Bintray共同构成了全自动软件分发管道的核心组件。

总结

Artifactory对CocoaPods的支持可以让您专注于为iOS, watchOS, tvOS或OS X设备编写代码,而不必担心CocoaPods主存储库或GitHub的安全性或可用性。其他功能,如智能搜索、AQL、高可用性、维护、监控等,可以帮助您更有效地工作,加快开发周期,最终使您的产品尽快推向市场。

欲了解更多有关Artifactory如何提高您组织绩效的信息,请通过以下电子邮件与我们联系info@www.si-fil.com

要么释放,要么死亡