-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
The Convert iOS SDK is published on GitHub and distributed via Swift Package Manager (primary) and CocoaPods. It has no third-party dependencies — only Foundation, the Security framework (Keychain), and URLSession.
- In Xcode, choose File ▸ Add Package Dependencies…
- Enter the package URL:
https://github.com/convertcom/ios-sdk.git - Select Up To Next Major Version starting from
1.0.0. - Add the
ConvertSwiftSDKproduct to your app target (do not addConvertSwiftSDKCoredirectly — it is pulled in transitively).
Add the package to your dependencies array and list ConvertSwiftSDK in your target's dependencies:
// Package.swift
dependencies: [
.package(url: "https://github.com/convertcom/ios-sdk.git", from: "1.0.0")
],
targets: [
.target(
name: "MyApp",
dependencies: [
.product(name: "ConvertSwiftSDK", package: "ios-sdk")
]
)
]Pin a specific version in production so your builds are reproducible; the from: lower-bound resolves to the latest compatible release unless you add an explicit upper bound.
Add the pod to your Podfile:
pod 'ConvertSwiftSDK', '~> 1.0'Then run:
pod installOpen the generated .xcworkspace (not .xcodeproj) after install. ConvertSwiftSDK pulls ConvertSwiftSDKCore transitively — you only name ConvertSwiftSDK in your Podfile.
| Toolchain | Minimum |
|---|---|
| Swift | 6.0 |
| Xcode | 16 or later (ships Swift 6.0 toolchain) |
| iOS (runtime) | 15.0 |
| macOS (runtime) | 12.0 |
| tvOS (runtime) | 15.0 |
| iPadOS | 15.0 (rides the iOS target) |
The SDK targets Swift language mode 6.0 with strict concurrency enabled. There is no watchOS support.
Swift Package Manager and CocoaPods distribute source-compatible Swift packages. There are no ProGuard or consumer-rules concerns — the Swift compiler handles optimization and dead-code stripping. No keep rules or obfuscation configuration is needed.
The SDK ships an Apple Privacy Manifest (PrivacyInfo.xcprivacy) inside the ConvertSwiftSDK target's resources. When you include ConvertSwiftSDK, the privacy manifest is bundled automatically — you do not need to copy any entries into your own manifest for the SDK's declared API usage.
See Apple Privacy Manifest for the full declared-use details.
The SDK requires no NSUsageDescription entries and requests no runtime permissions. It does not access the IDFA (ASIdentifierManager), location, camera, or any other permission-gated API. Network access is handled through standard URLSession calls.
After adding the dependency and initializing the SDK (see Initialization), set logLevel: .debug in ConvertConfiguration and watch the Xcode console or the unified log stream:
let sdk = ConvertSwiftSDK(configuration: ConvertConfiguration(
sdkKey: "your-sdk-key",
logLevel: .debug
))
try await sdk.ready()A successful integration logs the config fetch and resolves ready() without throwing. See Troubleshooting if runExperience keeps returning nil.
- Initialization — construct the SDK instance and await config
-
Configuration Options — every
ConvertConfigurationparameter
Copyrights © 2026 All Rights Reserved by Convert Insights, Inc.
Getting Started
iOS SDK
- Quickstart
- Installation
- Initialization
- Configuration
- Return Types & Models
- Code Examples
- Offline Behavior
- Tracking Control
- App Privacy & Data Collection
- Objective-C Interop
Core Concepts
- Experiences & Variations
- Feature Flags
- Bucketing Algorithm
- Rule Evaluation
- Segments
- Data Management
- Event System
- API Communication
How-To Guides
- Running Experiences
- Running Features
- Tracking Conversions
- Visitor Context
- Persistent Storage
- Troubleshooting
Contributing