CleverTap Apple Developer Account Configuration Doc: App Groups
This guide outlines the steps on the Apple Developer website (developer.apple.com) to configure App Group sharing for your main iOS application and its CleverTap-related extensions.
⚠️ IMPORTANT NOTE: Bundle Identifier Replacement
You must replace all instances of the placeholder
[BUNDLE_IDENTIFIER]with your actual, primary iOS application bundle identifier (e.g.,com.yourcompany.appname) throughout this entire document, including in the Appmaker dashboard configuration.
This configuration is mandatory for sharing data between your:
- Main App:
[BUNDLE_IDENTIFIER] - Content Extension (Rich Push):
[BUNDLE_IDENTIFIER].NotificationContent - Service Extension (Badge, Media):
[BUNDLE_IDENTIFIER].NotificationService
1. Prerequisites
You must be logged into your Apple Developer Account with the Account Holder or Admin role.
Required Identifier
- App Group Identifier:
group.[BUNDLE_IDENTIFIER]
2. Check and Create Missing Extension App IDs
You must ensure that the App IDs for your main app and both extensions are registered in the Apple Developer Portal before configuring capabilities.
Targets to Check/Create:
[BUNDLE_IDENTIFIER].NotificationContent(Content Extension)[BUNDLE_IDENTIFIER].NotificationService(Service Extension)
How to Check if App IDs Exist:
- Navigate to Certificates, IDs & Profiles -> Identifiers.
- Press CTRL+F (or CMD+F on Mac) to open your browser's Find function.
- Search for the partial identifier:
NotificationContentorNotificationService. - If the App ID is found, you can proceed to the next section.
Steps to Create an Extension App ID (If Missing):
- Click the add button (+) to register a new identifier.
- Select App IDs, then click Continue.
- Select type App, then click Continue.
- Description: Enter a name (e.g., "CleverTap Notification Content Extension").
- Bundle ID: Select Explicit and enter the full identifier (e.g.,
[BUNDLE_IDENTIFIER].NotificationContent). - Scroll down, click Continue, and then Register.
- Repeat these steps for the Service Extension App ID (
[BUNDLE_IDENTIFIER].NotificationService).
3. Create the Shared App Group
An App Group provides a shared data container, enabling communication between your main app and extensions.
Steps:
- Navigate to Certificates, IDs & Profiles -> Identifiers.
- Click the add button (+) to register a new identifier.
- Select App Groups from the list, then click Continue.
- Description: Enter a meaningful name (e.g., "CleverTap Shared Data Group").
- Identifier: Enter the required identifier:
group.[BUNDLE_IDENTIFIER] - Click Continue, then Register.
4. Enable App Group Capability on All App IDs
You must enable the App Groups capability for the main App ID and both Extension App IDs.
Targets to Configure (Repeat Step 4.1 for all 3 App IDs):
[BUNDLE_IDENTIFIER][BUNDLE_IDENTIFIER].NotificationContent[BUNDLE_IDENTIFIER].NotificationService
4.1. Configure App Groups
- In Certificates, IDs & Profiles, select Identifiers.
- Find and click on one of the App IDs.
- Click Edit.
- Check the App Groups box.
- Click the Configure button.
- In the list of App Groups, check the box next to the identifier you created:
group.[BUNDLE_IDENTIFIER]. - Click Continue (or Assign), then Save to confirm changes to the App ID.
5. Regenerate Provisioning Profiles
Any change to the capabilities of an App ID invalidates all associated Provisioning Profiles. These profiles must be regenerated and downloaded.
Steps:
- In Certificates, IDs & Profiles, select Profiles.
- Find the Provisioning Profile associated with one of your targets (it will likely show an Invalid status).
- Click Edit on the invalid profile.
- Click Generate (or Save) to create a new profile.
- Download the new Provisioning Profile.
- Repeat these steps for all other Provisioning Profiles (
DevelopmentandApp Store/Ad Hoc) associated with your Main App and both Extension Targets.
6. Appmaker Configuration Steps
After completing the portal steps, configure the required settings in the Appmaker dashboard.
6.1 Provisioning Profile Upload (In Appmaker)
- Go to the Appmaker dashboard -> Extensions.
- Search for the Provisioning Profiles extension and enable it.
- Add the following two profiles values:
| Order | Field | Value |
|---|---|---|
| First | Bundle Identifier | [BUNDLE_IDENTIFIER].NotificationContent |
| Target Name | NotificationContent | |
| Environment Variable | CLEVERTAP_CONTENT_PROFILE | |
| Second | Bundle Identifier | [BUNDLE_IDENTIFIER].NotificationService |
| Target Name | NotificationService | |
| Environment Variable | CLEVERTAP_SERVICE_PROFILE |
- After configuring both sets of values, save the changes.
6.2 Disable Firebase Notification Image
If you use Firebase Analytics, disable its notification handling to avoid conflict:
- Go to Appmaker Dashboard -> Extensions -> Firebase Analytics.
- Enable the
Disable ios notification imagefeature. - Click Save.
6.3 Finalizing the Build
- Contact Appmaker support to request regeneration of existing profiles on their system.
- Once confirmation is received, you can proceed to generate successful builds with CleverTap integration.