How to integrate Pushwoosh SDK into your OS X project

Download SDK Sample Project SDK API Docs

Linking Pushwoosh.framework

Add Pushwoosh.framework to your project via a dependency manager by putting the following lines in your podfile or cartfile:

platform :osx, '10.7'

target 'MyApp' do
	pod 'Pushwoosh_mac'

Alternatively, you can simply drag and drop the framework into Link Binaries With Libraries in your project's Build Phases.

Adding libraries

In Build Phases tab of your project, open Link Binaries With Libraries and click on Add items ("+" button). Search for and add libz.tbd and libc++.tbd libraries to your project:

Linking the app with Pushwoosh Control Panel

In your Info.plist, add a string type key Pushwoosh_APPID with your Pushwoosh Application Code as value.

Modifying the AppDelegate

Add the following code to your AppDelegate:

import PushKit
import Pushwoosh

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {

//lots of your initialization code

//-----------PUSHWOOSH PART-----------
NSUserNotificationCenter.default.delegate = Pushwoosh.sharedInstance()?.notificationCenterDelegateProxy

// set custom delegate for push handling, in our case - view controller
Pushwoosh.sharedInstance().delegate = self

// handling push on app start

// register for push notifications!

Add the following code to your UIApplicationDelegate (same file as above).

// system push notification registration success callback, delegate to PWMessagingDelegate
func application(_ application: NSApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
// system push notification registration error callback, delegate to PWMessagingDelegate
func application(_ application: NSApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {

To handle push notifications, add the following function to your UIApplicationDelegate (the same file as three steps above):

//this event is fired when the push gets received
func pushwoosh(_ pushwoosh: Pushwoosh!, onMessageReceived message: PWMessage!) {
   print("onMessageReceived: \(String(describing: message.payload))")
//this event is fired when user taps the notification  
func pushwoosh(_ pushwoosh: Pushwoosh!, onMessageOpened message: PWMessage!) {
   print("onMessageOpened: \(String(describing: message.payload))")

Enabling Push Notifications

Go to Signing and Capabilities in your target. Press + Capability and add Push Notifications.

Last updated