Currently, if using the SDK in a project that enables strict concurrency checking, Xcode will complain that the Amplitude object is not marked as Sendable and is not concurrency safe.
To circumvent these warnings (which may become errors in Swift 6), we can mark the library as @preconcurrency
@preconcurrency import AmplitudeSwift
Motivations
Swift Concurrency is becoming a large part of the Swift language, and moving into 6.0 will be important to add support. This might mean exposing a different kind of object, or migrating the Amplitude class itself to an actor.
Summary
Currently, if using the SDK in a project that enables strict concurrency checking, Xcode will complain that the
Amplitude
object is not marked asSendable
and is not concurrency safe.To circumvent these warnings (which may become errors in Swift 6), we can mark the library as
@preconcurrency
Motivations
Swift Concurrency is becoming a large part of the Swift language, and moving into 6.0 will be important to add support. This might mean exposing a different kind of object, or migrating the
Amplitude
class itself to an actor.