iOS SDK 1.3.1 — 16 โมดูลบน SPM และเปิดตัวครั้งแรกบน CocoaPods

เผยแพร่ 16 โมดูลสำหรับ Swift Package Manager และ 10 pod บน CocoaPods ส่วน ArcGIS / HERE / TomTom มีเฉพาะบน SPM เนื่องจากข้อจำกัดของผู้เผยแพร่

เราเผยแพร่ MapConductor iOS SDK 1.3.1 แล้ว โดยติดแท็กให้ 16 โมดูลสำหรับ Swift Package Manager และเป็นครั้งแรกของโปรเจกต์นี้ที่เผยแพร่ 10 pod บน CocoaPods ด้วย

Swift Package Manager

swift
dependencies: [
    .package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
    .package(url: "https://github.com/MapConductor/ios-for-maplibre", from: "1.3.1"),
]

CocoaPods

ruby
pod 'MapConductorCore', '~> 1.3.1'
pod 'MapConductorForMapLibre', '~> 1.3.1'

โมดูลและช่องทางการเผยแพร่

โมดูลรีโพซิทอรีการเผยแพร่SDK แผนที่
MapConductorCoreios-sdk-coreSPM + CocoaPods
MapConductorHeatmapios-heatmapSPM + CocoaPods
MapConductorMarkerClusteringios-marker-clusteringSPM + CocoaPods
MapConductorGeoJSONios-geojsonSPM + CocoaPods
MapConductorKMLios-kmlSPM + CocoaPods
MapConductorForMapLibreios-for-maplibreSPM + CocoaPodsMapLibre 6.20.0
MapConductorForMapTilerios-for-maptilerSPM + CocoaPodsMapLibre 6.20.0
MapConductorForGoogleMapsios-for-googlemapsSPM + CocoaPodsGoogle Maps 11.0.0
MapConductorForMapboxios-for-mapboxSPM + CocoaPodsMapbox 11.0.0
MapConductorForLongdoios-for-longdoSPM + CocoaPodsLongdo 4.1.0
MapConductorForArcGISios-for-arcgisSPM เท่านั้นArcGIS 300.1.0
MapConductorForHEREios-for-hereSPM เท่านั้นHERE 4.27.2.0
MapConductorForTomTomios-for-tomtomSPM เท่านั้นTomTom 0.73.1

ทำไมสามตัวจึงมีเฉพาะบน SPM

ArcGIS HERE และ TomTom ไม่ได้เผยแพร่บน CocoaPods ไม่ใช่เพราะตั้งค่าตกหล่น แต่เป็นข้อจำกัดจากฝั่งผู้เผยแพร่

  • ArcGIS — Esri เผยแพร่ผ่าน SPM เท่านั้น และ xcframework จะถูกดาวน์โหลดตอนบิลด์
  • HERE — SDK ดาวน์โหลดเองจากพอร์ทัลของ HERE เท่านั้น และห้ามเผยแพร่ต่อ
  • TomTom — ดีเพนเดนซี TomTomSDKMapDisplay ไม่มีอยู่ใน trunk ของ CocoaPods

ทั้งสามกรณีทราบอยู่แล้วจากการตรวจสอบก่อนเผยแพร่ ไม่ใช่เพิ่งมาพบตอนรัน หากใช้ผ่าน SPM ทั้งสามตัวนี้ใช้งานได้ตามปกติ

Google Maps เป็นไลบรารีแบบสแตติก

คำสั่ง pod trunk push ของ MapConductorForGoogleMaps จะล้มเหลวในครั้งแรก เพราะ GoogleMaps.xcframework ถูกลิงก์แบบสแตติก เพิ่ม --use-libraries แล้วจะผ่าน นี่ไม่ใช่ปัญหาเชิงการออกแบบ แต่เป็นเรื่องวิธีลิงก์ตอนตรวจสอบ

สภาพแวดล้อมที่รองรับ

iOS16.0 ขึ้นไป
Xcode15 ขึ้นไป
Swift tools5.9

หมายเหตุ

ไลบรารีบิลด์ด้วย BUILD_LIBRARY_FOR_DISTRIBUTION=YES และมี .swiftinterface มาด้วย ส่วนการประกาศที่ติด @_spi(MapConductorDriver) ไม่นับเป็นพื้นผิว API สาธารณะ ซึ่งเทียบได้กับ @InternalMapConductorApi บน Android และ /** @internal */ บน React

แต่ละโมดูลแยกเป็นรีโพซิทอรีของตัวเองที่ github.com/MapConductor