Google開(kāi)始于組件管理工具SPM(Swift Package Manager)提供Google地圖平臺(tái)相關(guān)SDK,包括發(fā)布iOS用Maps SDK 8.3.1、Places SDK 8.3.0,以及Navigation SDK 5.3.1。隨著對(duì)SPM的支持,相關(guān)文件也跟著更新,移除通過(guò)其他組件管理工具安裝二進(jìn)制文件的說(shuō)明。
不過(guò),官方也提到,除了SPM,開(kāi)發(fā)人員還是可以選擇手動(dòng)添加SDK相依項(xiàng)目,或是通過(guò)Swift與Objective-C組件管理工具CocoaPods添加。供開(kāi)發(fā)團(tuán)隊(duì)可以依據(jù)需求,選擇最適合的工作流程和技術(shù)堆棧。
這項(xiàng)消息對(duì)iOS開(kāi)發(fā)者相對(duì)重要,因?yàn)镾PM是Apple官方推薦的組件管理工具,與開(kāi)發(fā)環(huán)境Xcode緊密集成,因此通過(guò)支持SPM,開(kāi)發(fā)者便可以更方便地在iOS項(xiàng)目中,添加和管理Google地圖、Places和Navigation SDK。
過(guò)去在Google地圖應(yīng)用開(kāi)發(fā)上,iOS開(kāi)發(fā)者需要依賴CocoaPods,或是以手動(dòng)的方式管理相依項(xiàng)目,而加入SPM的支持,將會(huì)讓這個(gè)過(guò)程更加自動(dòng)化,開(kāi)發(fā)者可以直接在Xcode添加和管理SDK,只要指定對(duì)應(yīng)SDK的GitHub存儲(chǔ)庫(kù)URL,即可將組件相依項(xiàng)目添加至iOS項(xiàng)目,進(jìn)而提高開(kāi)發(fā)方便性和效率。
要讓SPM能夠支持iOS的Google地圖平臺(tái)SDK前,需要滿足特定的技術(shù)要求。首先SPM需要能夠支持已編譯的二進(jìn)制文件,特別是以XCFrameworks形式存在的程序代碼。XCFrameworks是一種封裝格式,用于封裝iOS、macOS、watchOS和tvOS編譯的應(yīng)用程序庫(kù)。此外,SPM還需要能夠處理Swift組件中,諸如圖像和字符串等非程序代碼的資源。
由于SPM的這些改進(jìn),現(xiàn)在Google地圖平臺(tái)SDK才得以集成,因?yàn)椴粌H涉及程序代碼本身,還包括了SDK執(zhí)行所需的各種額外資源。Google更新了構(gòu)建和發(fā)布基礎(chǔ)設(shè)施支持Swift組件發(fā)布,同時(shí)維持既有CocoaPods和XCFrameworks發(fā)布工作流程,并提到,這些變更在發(fā)布過(guò)程并不會(huì)增加任何額外的延遲。