Skip to main content

Notification Extensions Integration

Beta Feature

This feature is currently in beta for SDK version 2025.0.50. Please note that the implementation may change in future releases.

This guide will walk you through integrating Notification Content Extension and Notification Service Extension into your Unity game with Skillz. These extensions allow your app to customize push notification appearance and handle notification processing before delivery.

Overview​

Notification Extensions provide two key capabilities:

  • Notification Content Extension: Customizes the appearance of push notifications with rich content, media, and interactive elements
  • Notification Service Extension: Processes push notifications before they are delivered to the user, enabling features like media downloads, encryption, and content modification

Step 1: Apple Developer Console Setup​

1.1 App Identifier Configuration​

  1. Log into Apple Developer Console

  2. Configure App Identifier

    • Select Identifiers from the left sidebar
    • Find your app's identifier or create a new one
    • Click on your app identifier to edit it
  3. Enable App Groups Capability

    • Scroll down to Capabilities section
    • Find App Groups and check the box to enable it
    • Click Configure next to App Groups
    • Add a new App Group: group.[Your App Bundle ID]
    • Click Save to apply changes

1.2 Create Notification Content Extension Identifier​

  1. Create New App Identifier

    • Click the + button to create a new identifier
    • Select App IDs and click Continue
    • Choose App and click Continue
  2. Configure Notification Content Extension Identifier

    • Description: [Your App Name] Content Extension
    • Bundle ID: [Your App Bundle ID].SkillzNotificationContentExtension
    • Click Continue and then Register

1.3 Create Notification Service Extension Identifier​

  1. Create New App Identifier

    • Click the + button to create a new identifier
    • Select App IDs and click Continue
    • Choose App and click Continue
  2. Configure Notification Service Extension Identifier

    • Description: [Your App Name] Service Extension
    • Bundle ID: [Your App Bundle ID].SkillzNotificationServiceExtension
    • Capabilities: Enable App Groups and select the same App Group: group.[Your App Bundle ID]
    • Click Continue and then Register

Step 2: Provisioning Profile Setup​

2.1 Main App Provisioning Profile​

  1. Create/Update Main App Profile
    • Go to Profiles section
    • Select your main app's provisioning profile
    • Ensure it includes the App Groups capability
    • Download and install the updated profile

2.2 Notification Content Extension Provisioning Profile​

  1. Create Notification Content Extension Profile
    • Click + to create a new provisioning profile
    • Select iOS App Development (or App Store for distribution)
    • Select the Notification Content Extension App ID you created
    • Select your Development Team
    • Select the certificates you want to include
    • Select the devices for testing
    • Name it: [Your Main App Provisioning Profile ID] Content Extension
    • Click Continue and Generate
    • Download and install the profile

2.3 Notification Service Extension Provisioning Profile​

  1. Create Notification Service Extension Profile
    • Click + to create a new provisioning profile
    • Select iOS App Development (or App Store for distribution)
    • Select the Notification Service Extension App ID you created
    • Select your Development Team
    • Select the certificates you want to include
    • Select the devices for testing
    • Name it: [Your Main App Provisioning Profile ID] Service Extension
    • Click Continue and Generate
    • Download and install the profile

Important Note: The Skillz SDK automatically handles the provisioning profile assignment for both notification extensions during the build process. The naming conventions [Your Main App Provisioning Profile ID] Content Extension and [Your Main App Provisioning Profile ID] Service Extension are crucial - the SDK looks for these exact formats to automatically assign the correct provisioning profiles to the extensions.

Step 3: Build and Test​

3.1 Build for iOS​

  1. Build Process

    • When you build for iOS, the Skillz SDK will automatically:
      • Create both Notification Extension targets
      • Add necessary Swift files for each extension
      • Configure the Xcode project
      • Set up App Groups for data sharing between extensions and main app
  2. Verify Integration

    • Open the generated Xcode project
    • Check that SkillzNotificationContentExtension target exists
    • Check that SkillzNotificationServiceExtension target exists
    • Ensure provisioning profiles are correctly assigned

Troubleshooting​

Common Issues​

  1. Build Errors

    • Verify provisioning profiles are correctly installed
    • Check that App Groups capability is enabled for main app and service extension
  2. Provisioning Profile Issues

    • Verify main app and both extension profiles are installed
    • Ensure profiles include the correct App Identifiers
    • Check that profiles are not expired
    • Confirm naming conventions match SDK expectations

Debug Information​

The build process will log information about Notification Extensions integration:

  • Look for "✅ Notification Content Extension 'SkillzNotificationContentExtension' added, linked, and embedded successfully"
  • Look for "✅ Notification Service Extension 'SkillzNotificationServiceExtension' added, linked, and embedded successfully"
  • Check Xcode console for any Swift compilation errors
  • Verify Info.plist contains NSExtensionPointIdentifier for both extensions

Additional Resources​

Support​

If you encounter issues with Notification Extensions integration:

  1. Check the troubleshooting section above
  2. Review the build logs for specific error messages
  3. Contact Skillz Developer Support with detailed error information

Note: Notification Extensions require iOS 10.0+ and are available on all iOS devices that support the UserNotifications framework.