iOS SDK 1.3.1: 16 módulos en SPM y estreno en CocoaPods

Publicamos 16 módulos para Swift Package Manager y 10 pods en CocoaPods. ArcGIS, HERE y TomTom quedan solo en SPM por restricciones de quien los distribuye.

Publicamos MapConductor iOS SDK 1.3.1. Etiquetamos 16 módulos para Swift Package Manager y, por primera vez en este proyecto, también publicamos 10 pods en 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'

Módulos y vía de distribución

MóduloRepositorioDistribuciónSDK de mapas
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-arcgissolo SPMArcGIS 300.1.0
MapConductorForHEREios-for-heresolo SPMHERE 4.27.2.0
MapConductorForTomTomios-for-tomtomsolo SPMTomTom 0.73.1

Por qué tres van solo por SPM

ArcGIS, HERE y TomTom no están en CocoaPods. No es un ajuste que se nos haya pasado: es una restricción de quien los distribuye.

  • ArcGIS — Esri distribuye únicamente por SPM y el xcframework se descarga al compilar
  • HERE — El SDK solo se consigue por descarga manual desde el portal de HERE y no se puede redistribuir
  • TomTom — La dependencia TomTomSDKMapDisplay no existe en el trunk de CocoaPods

Los tres casos ya se conocían en la revisión previa; no aparecieron al ejecutar. Por SPM estos tres se usan con normalidad.

Google Maps es una biblioteca estática

El pod trunk push de MapConductorForGoogleMaps falla la primera vez porque GoogleMaps.xcframework está enlazado estáticamente. Con --use-libraries pasa. No es un problema de diseño, sino de cómo se enlaza durante la verificación.

Requisitos

iOS16.0 o posterior
Xcode15 o posterior
Swift tools5.9

Nota

Las bibliotecas se compilan con BUILD_LIBRARY_FOR_DISTRIBUTION=YES e incluyen .swiftinterface. Las declaraciones marcadas con @_spi(MapConductorDriver) no cuentan como superficie pública de la API: equivalen a @InternalMapConductorApi en Android y a /** @internal */ en React.

Cada módulo vive en su propio repositorio en github.com/MapConductor.