Wir haben MapConductor iOS SDK 1.3.1 veröffentlicht. Für den Swift Package Manager sind 16 Module getaggt, und zum ersten Mal in diesem Projekt liegen auch 10 Pods bei 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'
Module und Vertriebsweg
| Modul | Repository | Vertrieb | Karten-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 | nur SPM | ArcGIS 300.1.0 |
MapConductorForHERE | ios-for-here | nur SPM | HERE 4.27.2.0 |
MapConductorForTomTom | ios-for-tomtom | nur SPM | TomTom 0.73.1 |
Warum drei nur über SPM kommen
ArcGIS, HERE und TomTom liegen nicht bei CocoaPods. Das ist keine vergessene Einstellung, sondern eine Auflage der Anbieter.
- ArcGIS — Esri liefert ausschließlich über SPM aus; das xcframework wird beim Bauen heruntergeladen
- HERE — Das SDK gibt es nur als manuellen Download aus dem HERE-Portal und darf nicht weiterverteilt werden
- TomTom — Die Abhängigkeit
TomTomSDKMapDisplayexistiert im CocoaPods-Trunk nicht
Alles drei war bei der Vorabprüfung bekannt und hat sich nicht erst beim Ausführen gezeigt. Über SPM lassen sich auch diese drei wie gewohnt verwenden.
Google Maps ist eine statische Bibliothek
pod trunk push für MapConductorForGoogleMaps scheitert zunächst, weil GoogleMaps.xcframework statisch gelinkt ist. Mit --use-libraries geht es durch. Das ist kein Entwurfsproblem, sondern eine Frage der Link-Art bei der Prüfung.
Voraussetzungen
| iOS | 16.0 oder neuer |
| Xcode | 15 oder neuer |
| Swift tools | 5.9 |
Nachtrag
Die Bibliotheken werden mit BUILD_LIBRARY_FOR_DISTRIBUTION=YES gebaut und bringen ein .swiftinterface mit. Deklarationen mit @_spi(MapConductorDriver) zählen nicht zur öffentlichen API-Oberfläche — sie entsprechen @InternalMapConductorApi unter Android und /** @internal */ in React.
Die Module liegen unter github.com/MapConductor in je eigenen Repositories.