Skip to content

iOS SDK 7.0+ quick start

Get started with the Pushwoosh iOS SDK using this quick and simple example.

What’s new in iOS SDK 7.0+

Anchor link to

Starting with version 7.0, the Pushwoosh iOS SDK has been redesigned with a fully modular architecture. The SDK is now split into separate modules: PushwooshFramework, PushwooshCore, PushwooshBridge, and PushwooshLiveActivities are required for basic integration, while PushwooshForegroundPush, PushwooshVoIP, and PushwooshTVOS can be added optionally based on your needs.

This modular approach allows you to include only the features your app actually uses, reducing the final binary size and improving build times. Each module can be updated independently, making it easier to adopt new features without affecting the rest of your integration.

This release introduces native Swift Package Manager support for easier dependency management, along with improved Swift interoperability across all modules. Documentation is now embedded directly into the binary frameworks, so you can access API reference and code examples right in Xcode via Quick Help and the Developer Documentation window. New features include full support for iOS 16+ Live Activities with Dynamic Island integration, customizable foreground push notifications with animated banners and haptic feedback, enhanced VoIP capabilities, and a dedicated tvOS module for Apple TV applications.

Prerequisites

Anchor link to

To integrate the Pushwoosh iOS SDK into your app, you will need the following:

Download the example project

Anchor link to

Clone the example project from GitHub:

Terminal window
git clone https://github.com/Pushwoosh/pushwoosh-ios-sample.git

Configure the project

Anchor link to
  1. Open the project in Xcode.

  2. Add https://github.com/Pushwoosh/Pushwoosh-XCFramework as Swift Package Dependency.

  3. Set the bundle identifier for the main target (PushwooshSampleApp) to match your Pushwoosh project (e.g., com.pushwoosh.PushwooshSampleApp).

  4. Use the same bundle identifier for the NotificationService target, appending .NotificationService (e.g., com.pushwoosh.PushwooshSampleApp.NotificationService).

  5. In Info.plist, set the:

Important: Be sure to give the token access to the right app in your Pushwoosh Control Panel. Learn more

Run the project

Anchor link to
  1. Build and run the project.
  2. The app will have two tabs: “Actions” and “Settings”. Navigate to the Settings tab.
  3. Tap the Register for Pushes button.
  4. Grant permission for push notifications. The device will be registered with Pushwoosh.

You should see a log entry like this:

Terminal window
Pushwoosh: Initializing application runtime
[PW] BUNDLE ID: __YOUR_BUNDLE_ID__
[PW] APP CODE: __YOUR_APP_CODE__
[PW] PUSHWOOSH SDK VERSION: 7.0.0
[PW] HWID: __YOUR_HWID__
[PW] PUSH TOKEN: (null)
[PW] [I] -[PWNotificationManagerCompatiOS10] NotificationCenter authorization granted: 1
[PW] [I] -[PWPushNotificationsManagerCommon] Registered for push notifications: __YOUR_PUSH_TOKEN__

Your device is now registered with Pushwoosh.

Send a push notification

Anchor link to

Go back to the Pushwoosh Control Panel and send a push notification to your registered device.

Migrating from SDK 6.x

Anchor link to

If you’re upgrading from SDK version 6.x, the main change is how you access the Pushwoosh instance. In version 7.0+, use Pushwoosh.configure instead of Pushwoosh.sharedInstance():

Before (6.x):

Pushwoosh.sharedInstance().registerForPushNotifications()
Pushwoosh.sharedInstance().delegate = self

After (7.0+):

Pushwoosh.configure.registerForPushNotifications()
Pushwoosh.configure.delegate = self

All other APIs remain the same, so updating your code requires only replacing sharedInstance() with configure throughout your project.

What’s next

Anchor link to

To learn more, please refer to the basic integration guide