Repository navigation
SkyPath iOS SDK 4.0.0
Warning
This is a major release with breaking changes. Follow the Migration Guide v3.x → v4.0 before upgrading. Renamed APIs include @available(*, unavailable, renamed:) shims, so Xcode offers fix-its for most of the migration.
Requirements
- Minimum iOS version raised to iOS 17.0 (was iOS 16.0).
See Install for details.
Highlights
- Observations API: the old turbulence APIs are renamed to observations:
observations(with:),ObservationsQuery,ObservationsItemandDataType.observations. - Validated fetch configuration:
fetchConfigis read-only. Change it withupdateFetchConfig { }orsetFetchConfig(_:), which validate your changes and throw on invalid input. The SDK now fetches data automatically. - Initialization:
initialize(with: AuthConfig)replacesstart(apiKey:airline:userId:env:). - Single recording state:
recordingStateanddidUpdateRecordingState(to:)replaceinPosition,isHorizontalandinNoise. - Testing namespace: all simulation APIs now live under
SkyPath.shared.testingand work only in the staging environment. - Forecast: the old nowcasting APIs are renamed to forecast:
DataType.forecast,DataSourceType.forecast,OneLayerQuery.isForecastEnabled, andNotificationQuery.isForecastEnabled.
Breaking Changes
widthAround(distance on each side of the route) is replaced byrouteWidth(the total corridor width). Double your existing values.- The
sevsarrays on queries are replaced by aminSevthreshold.NotificationQuery.minSevis now required and defaults to.light. - All
SkyPathDelegatemethods are now required. Fetch and location errors come through one method,didFail(with:dataType:). - Aircraft is set with
fetchConfig.aircraftICAO. TheAircraftandAircraftSizetypes are removed. TurbulenceSeverity.noneis renamed to.smooth. The SDK no longer provides severity colors, so apps define their own palette.- App events are now reported through
reportAppEvent(_:). - Logging is now
SkyPath.loggerLevelandSkyPath.exportLogs(...). TheLoggertype is no longer public. Flight.fnumis renamed toFlight.num, and the initializer is nowFlight(dep:dest:num:).- Removed:
stop(),fetchData(refresh:types:),SPLocalNotificationManager, theTiletype (useItemable.tileKey),serverReachableandlowPowerMode.
Improvements
- Altitude ranges are rounded to the nearest thousand feet automatically.
- New error cases:
GeneralError.unauthorized(message:),GeneralError.location(error:)andQueryError.invalidRoute. OneLayerQueryandObservationsQuerynow share a commonDataQueryableprotocol.- Various improvements and performance optimizations.
📖 Full details: Migration Guide