Provisioning Profile Not Including Push Notifications Capability

Provisioning profiles created for my App ID are not including the Push Notifications capability, even though Push Notifications is enabled in the App ID configuration in Apple Developer Portal. I have enabled Push Notifications for my App ID (com.abc.app) in the Apple Developer Portal. The capability shows as enabled and saved. However, when provisioning profiles are generated (either manually or through third-party tools like Expo Application Services), they do not include:

  1. The Push Notifications capability
  2. The aps-environment entitlement

This results in build failures with the following errors:

Provisioning profile "*[expo] com.abc.app AppStore [timestamp]" doesn't support the Push Notifications capability.
Provisioning profile "*[expo] com.abc.app AppStore [timestamp]" doesn't include the aps-environment entitlement.

Steps Taken

  1. ✅ Enabled Push Notifications in App ID configuration (com.mirova.app)
  2. ✅ Saved the App ID configuration multiple times
  3. ✅ Waited for Apple's systems to sync (waited 5-10 minutes)
  4. ✅ Removed and re-added Push Notifications capability (unchecked, saved, re-checked, saved)
  5. ✅ Created Push Notification key in Apple Developer Portal
  6. ✅ Verified Push Notifications is checked and saved in App ID
  7. ❌ Provisioning profiles still created without Push Notifications capability

Expected Behavior

When Push Notifications is enabled for an App ID, any provisioning profiles created for that App ID should automatically include:

  • Push Notifications capability
  • aps-environment entitlement (set to production or development)

Actual Behavior

Provisioning profiles are created without Push Notifications capability, even though:

  • Push Notifications is enabled in App ID
  • App ID configuration is saved
  • Sufficient time has passed for sync

Additional Information

  • Push Notification Key: Created and valid (Key ID: 3YKQ7XLG9L and 747G8W2J68)
  • Distribution Certificate: Valid and active
  • Provisioning Profile Type: App Store distribution
  • Third-party Tool: Using Expo Application Services (EAS) for builds, but issue persists with manually created profiles as well

Questions

  1. Is there a delay or sync issue between enabling Push Notifications in App ID and it being available for provisioning profiles?
  2. Are there any additional steps required to ensure Push Notifications is included in provisioning profiles?
  3. Is there a known issue with Push Notifications capability not being included in provisioning profiles?
  4. Should I create the provisioning profile in a specific way to ensure Push Notifications is included?

Environment

  • Platform: iOS
  • Build Type: App Store distribution
  • Xcode Version: (via EAS cloud build)

Thank you for your assistance. I've been unable to resolve this issue and would appreciate any guidance.

  • iOS Deployment Target: Latest
Answered by DTS Engineer in 867321022

There are two factors in play here, the Apple Developer website and your third-party tooling. Let’s separate them.

Try this:

  1. In Certificates, Identifiers, and Profiles section of the Developer website, create a new App ID. I’d like you to share info about this App ID, so choose bundle ID that you’re comfortable posting here.
  2. During the creation process, enable the Push Notifications capability.
  3. Back in Certificates, Identifiers, and Profiles, create a new provisioning profile for that App ID. At the first screen, select iOS App Development.
  4. Check the entitlement authorised by that profile.

I just did that here and this is what I see:

% security cms -D -i Test808162_Dev.mobileprovision | plutil -p -
{
  …
  "Entitlements" => {
    "application-identifier" => "SKMME9E2Y8.com.example.apple-samplecode.Test808162"
    "aps-environment" => "development"
    "com.apple.developer.team-identifier" => "SKMME9E2Y8"
    "get-task-allow" => 1
    "keychain-access-groups" => [
      0 => "SKMME9E2Y8.*"
      1 => "com.apple.token"
    ]
  }
  …
}

As you can see, the profile authorises aps-environment with a value of development. This is exactly what I’d expect based on the steps above.

Please run through these steps and let me know what you see.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

There are two factors in play here, the Apple Developer website and your third-party tooling. Let’s separate them.

Try this:

  1. In Certificates, Identifiers, and Profiles section of the Developer website, create a new App ID. I’d like you to share info about this App ID, so choose bundle ID that you’re comfortable posting here.
  2. During the creation process, enable the Push Notifications capability.
  3. Back in Certificates, Identifiers, and Profiles, create a new provisioning profile for that App ID. At the first screen, select iOS App Development.
  4. Check the entitlement authorised by that profile.

I just did that here and this is what I see:

% security cms -D -i Test808162_Dev.mobileprovision | plutil -p -
{
  …
  "Entitlements" => {
    "application-identifier" => "SKMME9E2Y8.com.example.apple-samplecode.Test808162"
    "aps-environment" => "development"
    "com.apple.developer.team-identifier" => "SKMME9E2Y8"
    "get-task-allow" => 1
    "keychain-access-groups" => [
      0 => "SKMME9E2Y8.*"
      1 => "com.apple.token"
    ]
  }
  …
}

As you can see, the profile authorises aps-environment with a value of development. This is exactly what I’d expect based on the steps above.

Please run through these steps and let me know what you see.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Provisioning Profile Not Including Push Notifications Capability
 
 
Q