Contents

urbanairship/ios-library

The Airship SDK for Apple provides a comprehensive way to integrate Airship's customer experience platform into your iOS, tvOS, and visionOS applications.

Features

  • Push Notifications - Rich, interactive push notifications with deep linking
  • Live Activities - Real-time updates for iOS 16.1+ Dynamic Island and Lock Screen widgets
  • In-App Experiences - Contextual messaging and automation
  • Message Center - Inbox for push notifications and messages
  • Preference Center - User preference management
  • Feature Flags - Dynamic feature toggles and experimentation
  • Analytics - Comprehensive user behavior tracking
  • Contacts - User identification and contact management
  • Tags, Attributes & Subscription Lists - User segmentation, personalization, and subscription management
  • Privacy Controls - Granular data collection and feature management
  • SwiftUI Support - Modern SwiftUI components and views
  • Swift 6 - Fully adopted Swift 6 with strict concurrency safety

Platform Support

| Feature | iOS | tvOS | visionOS | |----------------------------------------|-----|---------------|----------| | Push Notifications | ✅ | ✅ | ✅ | | Live Activities | ✅ | ❌ | ❌ | | In-App Experiences | ✅ | ✅<sup>1</sup> | ✅ | | Message Center | ✅ | ✅<sup>2</sup> | ✅ | | Preference Center | ✅ | ✅ | ✅ | | Feature Flags | ✅ | ✅ | ✅ | | Analytics | ✅ | ✅ | ✅ | | Contacts | ✅ | ✅ | ✅ | | Tags, Attributes & Subscription Lists | ✅ | ✅ | ✅ | | Privacy Controls | ✅ | ✅ | ✅ | | SwiftUI Support | ✅ | ✅ | ✅ |

<sup>1</sup> tvOS In-App Experiences: Scenes, Banners, and non-HTML In-App Automations are supported. However, scheduled In-App Experiences will no longer display if the app’s cache is wiped due to tvOS storage limitations. <sup>2</sup> tvOS Message Center: Supports Native Message Center.

Installation

Add the Airship SDK to your project using Swift Package Manager:

dependencies: [
    .package(url: "https://github.com/urbanairship/ios-library.git", from: "20.4.0")
]

In Xcode, add the following products to your target dependencies:

  • AirshipCore (required)
  • AirshipMessageCenter (for Message Center)
  • AirshipPreferenceCenter (for Preference Center)
  • AirshipAutomation (for In-App Experiences, including Scenes, In-App Automation, and Landing Pages)
  • AirshipFeatureFlags (for Feature Flags)
  • AirshipNotificationServiceExtension (for rich push notifications)
  • AirshipObjectiveC (for Objective-C compatibility)
  • AirshipDebug (for debugging tools)

For other installation methods (CocoaPods, Carthage, xcframeworks), please see the getting started guide.

Quick Start

  1. Configure and Initialize Airship in your AppDelegate or App:
import AirshipCore

// In AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    var config = AirshipConfig()
    config.defaultAppKey = "YOUR_APP_KEY"
    config.defaultAppSecret = "YOUR_APP_SECRET"
    
    try! Airship.takeOff(config)
    return true
}

// Or in SwiftUI App
@main
struct MyApp: App {
    init() {
        var config = AirshipConfig()
        config.defaultAppKey = "YOUR_APP_KEY"
        config.defaultAppSecret = "YOUR_APP_SECRET"
        
        try! Airship.takeOff(config)
    }
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

Note: Airship.takeOff should only be called once.

  1. Enable & Request User Notifications:
await Airship.push.enableUserPushNotifications()

Requirements

  • iOS 16.0+
  • tvOS 18.0+
  • visionOS 1.0+
  • Xcode 26.0+

Documentation

Support

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Package Metadata

Repository: urbanairship/ios-library

Default branch: main

README: README.md