Install the SDK for iOS, macOS, tvOS, and watchOS
On this page
Overview
Atlas Device SDK for Swift enables you to build iOS, macOS, tvOS, and watchOS applications using either the Swift or Objective-C programming languages. This page details how to install the SDK in your project and get started.
Prerequisites
Before getting started, ensure your development environment meets the following prerequisites:
Your project uses an Xcode version and minimum OS version listed in the OS Support section of this page.
Reflection is enabled in your project. The Swift SDK uses reflection to determine your model's properties. Your project must not set
SWIFT_REFLECTION_METADATA_LEVEL = none
, or the SDK cannot see properties in your model. Reflection is enabled by default if your project does not specifically set a level for this setting.
Installation
You can use SwiftPM
, CocoaPods
, or Carthage
to add the
Swift SDK to your project.
Tip
Atlas Device SDK and Realm
The SDK uses Realm Core database for device data persistence. When you install the Swift SDK, the package names reflect Realm naming.
Import the SDK
Tip
Atlas Device SDK and Realm
The SDK uses Realm Core database for device data persistence. When you import the Swift SDK, the package names reflect Realm naming.
Add the following line at the top of your source files to use the SDK:
App Download File Size
The SDK should only add around 5 to 8 MB to your app's download size. The releases we distribute are significantly larger because they include support for the iOS, watchOS and tvOS simulators, some debug symbols, and bitcode, all of which are stripped by the App Store automatically when apps are downloaded.
Troubleshooting
If you have build issues after using one of these methods to install the SDK, see our troubleshooting guidelines for information about resolving those issues.
OS Support
Important
There are special considerations when using the SDK with tvOS. See Build for tvOS for more information.
Xcode 15
Changed in version 10.50.0: Minimum required Xcode version is 15.1
Supported OS | Realm | Atlas App Services |
---|---|---|
iOS 12.0+ | X | X |
macOS 10.14+ | X | X |
tvOS 12.0+ | X | X |
watchOS 4.0+ | X | |
visionOS 1.0+ | X | X |
Xcode 14
Changed in version 10.50.0: Removed support for Xcode 14.
Swift SDK version 10.50.0 drops support for Xcode 14. For v10.49.3 and earlier, these Xcode 14 requirements apply:
Xcode version 14.1 or higher.
When using Xcode 14, a target of iOS 11.0 or higher, macOS 10.13 or higher, tvOS 11.0 or higher, or watchOS 4.0 or higher.
Swift Concurrency Support
The Swift SDK supports Swift's concurrency-related language features. For best practices on using the Swift SDK's concurrency features, refer to the documentation below.
Async/Await Support
Starting with Realm Swift SDK Versions 10.15.0 and 10.16.0, many of the Realm APIs support the Swift async/await syntax. Projects must meet these requirements:
Swift SDK Version | Swift Version Requirement | Supported OS |
---|---|---|
10.25.0 | Swift 5.6 | iOS 13.x |
10.15.0 or 10.16.0 | Swift 5.5 | iOS 15.x |
If your app accesses Realm in an async/await
context, mark the code
with @MainActor
to avoid threading-related crashes.
For more information about async/await support in the Swift SDK, refer to Swift Concurrency: Async/Await APIs.
Actor Support
The Swift SDK supports actor-isolated realm instances. For more information, refer to Use Realm with Actors - Swift SDK.
Apple Privacy Manifest
Changed in version 10.49.3: Build RealmSwift as a dynamic framework to include the Privacy Manifest.
Apple requires apps that use RealmSwift
to provide a privacy manifest
containing details about the SDK's data collection and use practices. The
bundled manifest file must be included when submitting new apps or app updates
to the App Store. For more details about Apple's requirements, refer to
Upcoming third-party SDK requirements
on the Apple Developer website.
Starting in Swift SDK version 10.46.0, the SDK ships with privacy manifests
for Realm
and RealmSwift
. Each package contains its own privacy manifest
with Apple's required API disclosures and the reasons for using those APIs.
You can view the privacy manifests in each package, or in the realm-swift
GitHub repository:
Realm
: https://github.com/realm/realm-swift/blob/master/Realm/PrivacyInfo.xcprivacyRealmSwift
: https://github.com/realm/realm-swift/blob/master/RealmSwift/PrivacyInfo.xcprivacy
To include these manifests in a build target that uses RealmSwift
, you must
build RealmSwift
as a dynamic framework. For details, refer to the Swift
Package Manager Installation instructions step
(Optional) Build RealmSwift as a Dynamic Framework.
The Swift SDK does not include analytics code in builds for the App Store. The SDK does not log into Atlas on its own behalf.
If you write an app that uses any App Services functionality, such as initializing an App client to:
You may need to add additional disclosures to your app's privacy manifest detailing your data collection and use practices when using these APIs.
For more information, refer to Apple's Privacy manifest files documentation.