เราเผยแพร่ MapConductor iOS SDK 1.3.1 แล้ว โดยติดแท็กให้ 16 โมดูลสำหรับ Swift Package Manager และเป็นครั้งแรกของโปรเจกต์นี้ที่เผยแพร่ 10 pod บน CocoaPods ด้วย
Swift Package Manager
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
pod 'MapConductorCore', '~> 1.3.1' pod 'MapConductorForMapLibre', '~> 1.3.1'
โมดูลและช่องทางการเผยแพร่
| โมดูล | รีโพซิทอรี | การเผยแพร่ | SDK แผนที่ |
|---|---|---|---|
MapConductorCore | ios-sdk-core | SPM + CocoaPods | — |
MapConductorHeatmap | ios-heatmap | SPM + CocoaPods | — |
MapConductorMarkerClustering | ios-marker-clustering | SPM + CocoaPods | — |
MapConductorGeoJSON | ios-geojson | SPM + CocoaPods | — |
MapConductorKML | ios-kml | SPM + CocoaPods | — |
MapConductorForMapLibre | ios-for-maplibre | SPM + CocoaPods | MapLibre 6.20.0 |
MapConductorForMapTiler | ios-for-maptiler | SPM + CocoaPods | MapLibre 6.20.0 |
MapConductorForGoogleMaps | ios-for-googlemaps | SPM + CocoaPods | Google Maps 11.0.0 |
MapConductorForMapbox | ios-for-mapbox | SPM + CocoaPods | Mapbox 11.0.0 |
MapConductorForLongdo | ios-for-longdo | SPM + CocoaPods | Longdo 4.1.0 |
MapConductorForArcGIS | ios-for-arcgis | SPM เท่านั้น | ArcGIS 300.1.0 |
MapConductorForHERE | ios-for-here | SPM เท่านั้น | HERE 4.27.2.0 |
MapConductorForTomTom | ios-for-tomtom | SPM เท่านั้น | 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 แล้วจะผ่าน นี่ไม่ใช่ปัญหาเชิงการออกแบบ แต่เป็นเรื่องวิธีลิงก์ตอนตรวจสอบ
สภาพแวดล้อมที่รองรับ
| iOS | 16.0 ขึ้นไป |
| Xcode | 15 ขึ้นไป |
| Swift tools | 5.9 |
หมายเหตุ
ไลบรารีบิลด์ด้วย BUILD_LIBRARY_FOR_DISTRIBUTION=YES และมี .swiftinterface มาด้วย ส่วนการประกาศที่ติด @_spi(MapConductorDriver) ไม่นับเป็นพื้นผิว API สาธารณะ ซึ่งเทียบได้กับ @InternalMapConductorApi บน Android และ /** @internal */ บน React
แต่ละโมดูลแยกเป็นรีโพซิทอรีของตัวเองที่ github.com/MapConductor