iOS (Swift) SDK: Modern Analytics for Apple Platforms

A modern, native iOS (Swift) SDK for Apple platforms, built with Swift concurrency and a flexible plugin architecture.
Available Plans
  • free
  • starter
  • growth
  • enterprise

The new iOS (Swift) SDK replaces the legacy iOS (Obj-C) SDK with a modern architecture designed for today’s Apple development practices. Built with async-await, it introduces a runtime-flexible plugin system, multi-instance support, and expands platform coverage to include macOS alongside iOS, tvOS, and watchOS.

announcement
RudderStack recommends using the iOS (Swift) SDK for all new Apple platform implementations. The legacy iOS (Obj-C) SDK continues to receive maintenance updates but no new features.

Why we built this

The legacy iOS SDK was built in Objective-C when it was the dominant language for Apple development. As Swift has matured and become the standard, developers expect type-safe APIs, structured concurrency, and modern language features that Objective-C cannot provide.

The legacy iOS (Obj-C) SDK locked integrations at configuration time, making runtime modifications impossible. Customers who needed custom event processing or filtering had to request SDK changes, creating bottlenecks and slowing their implementation timelines.

The iOS (Swift) SDK addresses these limitations with native Swift concurrency, a dynamic plugin system for runtime customization, and expanded platform support including macOS. It lets you use a single SDK across Apple platforms.

Key benefits

This section lists some key benefits of using the iOS (Swift) SDK.

Developer experience

  • Modern Swift concurrency: Built with async-await and structured concurrency for non-blocking operations and better app responsiveness
  • Enhanced identity access: Type-safe direct property access to anonymousId, userId, traits, and sessionId
  • macOS support: Native support for macOS 12.0+ alongside iOS 15.0+, tvOS 15.0+, and watchOS 8.0+

Extensibility

  • Plugin architecture: Dynamic plugin management lets you add, remove, and modify event processing without waiting for SDK updates
  • Multi-instance support: Create multiple isolated analytics instances with independent state, storage, and configuration

Stability

  • Shutdown API: Explicitly shut down and clean up SDK resources with event persistence across restarts

Maintainability

  • Cleaner payloads: Removed redundant identity fields from context.traits for smaller, consistent event data

How to use the SDK

For installation, initialization, and API usage, see the iOS (Swift) SDK Quickstart. For configuration options, see SDK Configuration Options.

New and improved features

New features

See New Features in iOS (Swift) SDK for more information.

Improved features

  • Flexible reset API: Reset specific identity values (anonymousId, userId, traits, session) individually instead of all-or-nothing
  • Enhanced custom context: Pass any JSON value type (strings, arrays, nested objects, booleans) to customContext, not just dictionaries
  • Flexible integration options: Pass configuration objects to integrations instead of just boolean toggles
  • ExternalId on all event types: Set externalId on track, screen, and group events—not just identify
  • Direct destination instance access: Access destination plugin instances anytime with getDestinationInstance() instead of waiting for callbacks
  • Custom logger: Configure centralized logging with pluggable implementations via LoggerAnalytics.setLogger()

See the Improved Features in iOS (Swift) SDK guide for more information.

Migrate from legacy iOS (Obj-C) SDK

success
The legacy iOS (Obj-C) SDK continues to work and receive maintenance updates, so you can migrate at your own pace.

The iOS (Swift) SDK introduces API and payload changes from the legacy iOS (Obj-C) SDK. For example, event payloads remove redundant identity fields such as context.traits.anonymousId, context.traits.userId, and context.traits.id.

warning
If your downstream systems rely on these removed fields, update your transformations before migrating.

See the following guides for detailed API differences and migration steps:

Platform requirements

PlatformMinimum version
iOS15.0+
macOS12.0+
tvOS15.0+
watchOS8.0+

Resources

See the following resources for learning more about the iOS (Swift) SDK:

The following guides will help you get started with the iOS (Swift) SDK:

Questions? We're here to help.

Join the RudderStack Slack community or email us for support