AWS全托管程序代碼成品(Artifact)存儲(chǔ)庫(kù)CodeArtifact現(xiàn)在可以更好地支持Swift開發(fā)者,CodeArtifact能夠存儲(chǔ)和檢索Apple平臺(tái)的組件相依項(xiàng)目,并集成標(biāo)準(zhǔn)開發(fā)人員工具Xcode、xcodebuild和Swift Package Manager(SwiftPM),使開發(fā)人員可以方便地管理這些Swift程序代碼成品。
簡(jiǎn)單的應(yīng)用程序可能只用到數(shù)十個(gè)組件,但大型企業(yè)的應(yīng)用程序可能包含數(shù)百個(gè)相依項(xiàng)目,這些組件分別解決不同的任務(wù),像是網(wǎng)絡(luò)訪問(wèn)、加密函數(shù),或是數(shù)據(jù)格式操作等,使開發(fā)人員能夠更快地開發(fā)和測(cè)試應(yīng)用程序。同時(shí)開發(fā)人員也會(huì)嵌入SDK來(lái)訪問(wèn)遠(yuǎn)程服務(wù),而這些SDK可能來(lái)自組織中其他團(tuán)隊(duì),或是由第三方維護(hù)。
因此管理組件和依賴性成了目前軟件開發(fā)很重要部分,AWS提到,組織管理程序代碼成品存在兩個(gè)重要挑戰(zhàn),分別是合法性與安全性。組織必須確保第三方軟件組件的授權(quán),與組件項(xiàng)目的預(yù)期用途兼容,并且該軟件組件不會(huì)侵犯他人知識(shí)產(chǎn)權(quán),另外,組織也必須確保所使用的程序代碼安全可用,沒(méi)有后門或是刻意被置入的漏洞,以防范近年流行的供應(yīng)鏈攻擊。
為此,企業(yè)需要在本地或是云計(jì)算構(gòu)建私有軟件組件服務(wù)器,規(guī)范開發(fā)人員只能使用該服務(wù)器上經(jīng)過(guò)審查的軟件組件。而CodeArtifact則是一個(gè)可供企業(yè)存放私人組件的云計(jì)算服務(wù),過(guò)去CodeArtifact支持的組件管理器和構(gòu)建工具,包括Maven、Gradle、npm、Yarn、Twine、pip和NuGet,而現(xiàn)在還支持原生Swift組件。
開發(fā)者可以從CodeArtifact存儲(chǔ)庫(kù)發(fā)布和下載Swift組件相依項(xiàng)目,CodeArtifact SwiftPM也能夠與現(xiàn)有開發(fā)工具搭配使用。在將組件存儲(chǔ)到CodeArtifact之后,開發(fā)者便可以在項(xiàng)目的Package.swift或是Xcode項(xiàng)目中參照使用,如同在Git端點(diǎn)訪問(wèn)公共Swift組件一樣。
要上傳Swift組件到CodeArtifact,Swift版本需要使用5.8版本以上,因此要處理iOS、iPadOS、tvOS、watchOS的應(yīng)用程序開發(fā)時(shí),開發(fā)者就必須使用Xcode 15。Swift 5.9提供了一個(gè)swift package-registry publish命令,讓開發(fā)者可將組件上傳到CodeArtifact,而Swift 5.8則可以先使用curl命令上傳程序代碼成品。
CodeArtifact在收費(fèi)方面,Swift程序代碼成品與其他已經(jīng)支持的程序代碼成品格式相同,并且現(xiàn)已在13個(gè)地區(qū)開放支持。