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