iOS · iPadOS · macOS · tvOS

Complete API reference and integration guides for push notifications on Apple platforms.

Use with AI coding assistants

Instead of reading docs manually, let your AI assistant access the latest Pushwoosh iOS SDK documentation, code snippets, and API reference directly during the conversation via Context7 MCP server.

How it works

Context7 is an MCP server that delivers up-to-date library documentation to AI assistants. Instead of relying on potentially outdated training data, the assistant fetches the latest docs in real time.

Claude Code Cursor Windsurf Cline + any MCP-compatible tool
Setup

Run in terminal:

claude mcp add context7 -- npx -y @upstash/context7-mcp@latest

Add to your MCP configuration file:

.cursor/mcp.json
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}
Example prompts
1 "Integrate Pushwoosh iOS SDK into my project using SPM and configure Info.plist"
2 "Implement PWMessagingDelegate to handle push notification callbacks"
3 "Set up user segmentation with tags for targeted push notifications"
What the AI assistant gets
Installation instructions — SPM and CocoaPods setup
Complete API reference documentation
Swift and Objective-C code examples
Module-specific integration guides
Configuration details — Info.plist, entitlements, capabilities
1

Install the SDK

Xcode → File → Add Package Dependencies → enter URL:

https://github.com/Pushwoosh/Pushwoosh-XCFramework
Required
PushwooshFramework PushwooshCore PushwooshBridge
Optional
PushwooshLiveActivities PushwooshVoIP PushwooshForegroundPush PushwooshKeychain PushwooshGRPC
Podfile
pod 'PushwooshXCFramework'
2

Configure Info.plist

Info.plist
<key>Pushwoosh_APPID</key>
<string>XXXXX-XXXXX</string>
<key>Pushwoosh_API_TOKEN</key>
<string>YOUR-DEVICE-API-TOKEN</string>
3

Enable Capabilities

Push Notifications
Background Modes → Remote notifications
4

Initialize SDK

AppDelegate.swift
import PushwooshFramework

class AppDelegate: NSObject, UIApplicationDelegate, PWMessagingDelegate {

    func application(_ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions:
            [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        Pushwoosh.configure.setDelegate(self)
        Pushwoosh.configure.registerForPushNotifications()

        return true
    }

    func application(_ application: UIApplication,
        didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        Pushwoosh.configure.handlePushRegistration(deviceToken)
    }

    // Called when a push is received
    func pushwoosh(_ pushwoosh: Pushwoosh,
        onMessageReceived message: PWMessage) {
        print("Received: \(message.payload)")
    }

    // Called when a push is tapped
    func pushwoosh(_ pushwoosh: Pushwoosh,
        onMessageOpened message: PWMessage) {
        print("Opened: \(message.payload)")
    }
}
AppDelegate.m
#import <PushwooshFramework/PushwooshFramework.h>

@interface AppDelegate () <PWMessagingDelegate>
@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [Pushwoosh.configure setDelegate:self];
    [Pushwoosh.configure registerForPushNotifications];

    return YES;
}

- (void)application:(UIApplication *)application
    didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    [Pushwoosh.configure handlePushRegistration:deviceToken];
}

- (void)pushwoosh:(Pushwoosh *)pushwoosh
    onMessageReceived:(PWMessage *)message {
    NSLog(@"Received: %@", message.payload);
}

- (void)pushwoosh:(Pushwoosh *)pushwoosh
    onMessageOpened:(PWMessage *)message {
    NSLog(@"Opened: %@", message.payload);
}

@end