Skip to main content

 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:

  1. Main App: [BUNDLE_IDENTIFIER]
  2. Content Extension (Rich Push): [BUNDLE_IDENTIFIER].NotificationContent
  3. 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:

  1. Navigate to Certificates, IDs & Profiles -> Identifiers.
  2. Press CTRL+F (or CMD+F on Mac) to open your browser's Find function.
  3. Search for the partial identifier: NotificationContent or NotificationService.
  4. If the App ID is found, you can proceed to the next section.

Steps to Create an Extension App ID (If Missing):

  1. Click the add button (+) to register a new identifier.
  2. Select App IDs, then click Continue.
  3. Select type App, then click Continue.
  4. Description: Enter a name (e.g., "CleverTap Notification Content Extension").
  5. Bundle ID: Select Explicit and enter the full identifier (e.g., [BUNDLE_IDENTIFIER].NotificationContent).
  6. Scroll down, click Continue, and then Register.
  7. 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:

  1. Navigate to Certificates, IDs & Profiles -> Identifiers.
  2. Click the add button (+) to register a new identifier.
  3. Select App Groups from the list, then click Continue.
  4. Description: Enter a meaningful name (e.g., "CleverTap Shared Data Group").
  5. Identifier: Enter the required identifier: group.[BUNDLE_IDENTIFIER]
  6. 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):

  1. [BUNDLE_IDENTIFIER]
  2. [BUNDLE_IDENTIFIER].NotificationContent
  3. [BUNDLE_IDENTIFIER].NotificationService

4.1. Configure App Groups

  1. In Certificates, IDs & Profiles, select Identifiers.
  2. Find and click on one of the App IDs.
  3. Click Edit.
  4. Check the App Groups box.
  5. Click the Configure button.
  6. In the list of App Groups, check the box next to the identifier you created: group.[BUNDLE_IDENTIFIER].
  7. 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:

  1. In Certificates, IDs & Profiles, select Profiles.
  2. Find the Provisioning Profile associated with one of your targets (it will likely show an Invalid status).
  3. Click Edit on the invalid profile.
  4. Click Generate (or Save) to create a new profile.
  5. Download the new Provisioning Profile.
  6. Repeat these steps for all other Provisioning Profiles (Development and App 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)

  1. Go to the Appmaker dashboard -> Extensions.
  2. Search for the Provisioning Profiles extension and enable it.
  3. Add the following two profiles values:
OrderFieldValue
FirstBundle Identifier[BUNDLE_IDENTIFIER].NotificationContent
Target NameNotificationContent
Environment VariableCLEVERTAP_CONTENT_PROFILE
SecondBundle Identifier[BUNDLE_IDENTIFIER].NotificationService
Target NameNotificationService
Environment VariableCLEVERTAP_SERVICE_PROFILE
  1. 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:

  1. Go to Appmaker Dashboard -> Extensions -> Firebase Analytics.
  2. Enable the Disable ios notification image feature.
  3. 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.