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
- Configure and Initialize Airship in your
AppDelegateorApp:
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.takeOffshould only be called once.
- Enable & Request User Notifications:
await Airship.push.enableUserPushNotifications()Requirements
- iOS 16.0+
- tvOS 18.0+
- visionOS 1.0+
- Xcode 26.0+
Documentation
- Getting Started - Complete setup guide
- API Reference - Full API documentation
- Migration Guides - Comprehensive migration documentation
- Sample Apps - Example implementations
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