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