LaunchDarkly SDK for iOS

Run CI SwiftPM compatible CocoaPods compatible Carthage compatible Platform

LaunchDarkly overview

LaunchDarkly is a feature management platform that serves trillions of feature flags daily to help teams build better software, faster. Get started using LaunchDarkly today!

Twitter Follow

Supported iOS and Xcode versions

This version of the LaunchDarkly SDK has been tested across iOS, macOS, watchOS, and tvOS devices.

The LaunchDarkly iOS SDK requires the following minimum build tool versions:

Tool Version
Xcode 12.5+
Swift 5.3+

And supports the following device platforms:

Platform Version
iOS 12.0
watchOS 4.0
tvOS 12.0
macOS 10.13

Installation

LaunchDarkly supports multiple methods for installing the library in a project. Once installed, head over to the SDK documentation for complete instructions on getting started with using the SDK.

Swift Package Manager

The Swift Package Manager is a dependency manager integrated into the swift compiler and Xcode.

To integrate LaunchDarkly into an Xcode project, go to the project editor, and select Swift Packages. From here hit the + button and follow the prompts using https://github.com/launchdarkly/ios-client-sdk.git as the URL.

To include LaunchDarkly in a Swift package, simply add it to the dependencies section of your Package.swift file. And add the product “LaunchDarkly” as a dependency for your targets.

dependencies: [
    .package(url: "https://github.com/launchdarkly/ios-client-sdk.git", .upToNextMajor(from: "9.12.0"))
]

CocoaPods

To use the CocoaPods dependency manager to integrate LaunchDarkly into your Xcode project, specify it in your Podfile:

use_frameworks!
target 'YourTargetName' do
  pod 'LaunchDarkly', '~> 9.12'
end

Carthage

To use the Carthage dependency manager to integrate LaunchDarkly into your Xcode project, specify it in your Cartfile:

To integrate LaunchDarkly into your Xcode project using Carthage, specify it in your Cartfile:

github "launchdarkly/ios-client-sdk" ~> 9.12

Manual installation

If you prefer not to use the aforementioned dependency managers, it is possible to integrate the SDK manually.

  1. On the root folder of the project retreive the SDK by either:
    • Adding the SDK as a git submodule with git submodule add https://github.com/launchdarkly/ios-client-sdk.git.
    • OR cloning the SDK with git clone https://github.com/launchdarkly/ios-client-sdk.git.
  2. Open the new ios-client-sdk folder and drag LaunchDarkly.xcodeproj into the project navigator of your application’s Xcode project. It should appear nested within your application’s blue project icon.
  3. Select your application project in the project navigator (blue icon) and select your application target under the “Targets” heading in the sidebar. If you have multiple targets, perform the following steps for each target.
  4. Select the “General” tab, and if necessary expand the subsection “Frameworks, Libraries, and Embedded Content”.
  5. Click the “+” button in the expanded subsection. Under “LaunchDarkly” within the dialog you will see 4 frameworks, select LaunchDarkly.framework for iOS, or LaunchDarkly_<platform> for other platforms.

Learn more

Read our documentation for in-depth instructions on configuring and using LaunchDarkly. You can also head straight to the complete reference guide for this SDK.

Testing

We run integration tests for all our SDKs using a centralized test harness. This approach gives us the ability to test for consistency across SDKs, as well as test networking behavior in a long-running application. These tests cover each method in the SDK, and verify that event sending, flag evaluation, stream reconnection, and other aspects of the SDK all behave correctly.

Privacy

At WWDC23, Apple introduced the concept of Privacy Manifests. The privacy manifest included with the SDK describes our data usage with respect to the minimum case of data collection. If you utilize the SDK, you will have to update your own privacy manifest if you choose to collect more data in your implementation than the minimum for our SDK to function.

To learn more about Privacy Manifests, please refer to Apple Developer Documention.

Contributing

We encourage pull requests and other contributions from the community. Check out our contributing guidelines for instructions on how to contribute to this SDK.

About LaunchDarkly

  • LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can:
    • Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases.
    • Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?).
    • Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file.
    • Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline.
  • LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Read our documentation for a complete list.
  • Explore LaunchDarkly