Notification Extensions Integration
This feature is currently in beta for SDK version 2025.1.150. 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​
Log into Apple Developer Console
- Go to developer.apple.com
- Navigate to Certificates, Identifiers & Profiles
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
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​
Create New App Identifier
- Click the + button to create a new identifier
- Select App IDs and click Continue
- Choose App and click Continue
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​
Create New App Identifier
- Click the + button to create a new identifier
- Select App IDs and click Continue
- Choose App and click Continue
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​
- 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​
- 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​
- 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 Podfile Configuration​
Important: When using Notification Extensions with CocoaPods, you must use static frameworks in your Podfile. Add the following to your Podfile:
use_frameworks! :linkage => :static
This is necessary because Notification Extensions require static linking to work properly with the Skillz SDK. Without this setting, you may encounter build errors or runtime issues with the notification extensions.
3.2 Build for iOS​
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
- When you build for iOS, the Skillz SDK will automatically:
Verify Integration
- Open the generated Xcode project
- Check that SkillzNotificationContentExtension target exists
- Check that SkillzNotificationServiceExtension target exists
- Ensure provisioning profiles are correctly assigned
3.3 Disabling Notification Extensions​
If you need to disable the Notification Extensions integration, you can do so through Unity's Skillz settings:
Open Unity Editor
- Navigate to your Unity project
Access Skillz Settings
- Go to Skillz
Disable Extensions
- Check the "Disable Extension" option in the Skillz settings
- This will prevent the Skillz SDK from automatically creating the Notification Extension targets during the iOS build process
Note: When "Disable Extension" is enabled, the Notification Content Extension and Notification Service Extension will not be created, and you will not have access to the notification extension features. This setting is useful if you want to manage notification extensions manually or if you don't need them for your project.
Troubleshooting​
Common Issues​
- Build Errors
- Verify provisioning profiles are correctly installed
- Check that App Groups capability is enabled for main app and service extension
- Ensure your Podfile includes
use_frameworks! :linkage => :static(see Step 3.1) - Verify that CocoaPods dependencies are properly installed with
pod install
- 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​
- Apple Notification Extensions Documentation
- UserNotifications Framework Reference
- Skillz SDK Documentation
Support​
If you encounter issues with Notification Extensions integration:
- Check the troubleshooting section above
- Review the build logs for specific error messages
- 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.