When you upload an app from Xcode to App Store Connect, you may see a warning or message saying “Missing Push Notification Entitlement.” This usually means App Store Connect detected code related to remote notifications, but the signed app does not contain the APNs entitlement required for push notifications.
- Typical error message
- Main causes
- Common situations where it appears
- How to check the configuration
- Fix 1: Add Push Notifications in Xcode
- Fix 2: Enable Push Notifications for the App ID
- Fix 3: Regenerate the provisioning profile
- Fix 4: Refresh automatic signing
- Fix 5: Remove unused push-notification code
- If you use a Notification Service Extension
- Important notes
- Summary
Typical error message
Missing Push Notification Entitlement
The message may also explain that the app appears to use Apple Push Notification service (APNs), but the signed binary does not include the required aps-environment entitlement.
Main causes
- The Push Notifications capability is missing from the app target in Xcode.
- Push Notifications is not enabled for the App ID in the Apple Developer portal.
- An old provisioning profile is still being used after enabling the capability.
- Manual signing is using a provisioning profile that does not include the push entitlement.
- Remote-notification registration code or a third-party SDK remains in the project even though push notifications are no longer intended.
- A Notification Service Extension or another target has incomplete signing and capability settings.
Common situations where it appears
This warning commonly appears after adding Firebase Cloud Messaging or another push SDK, after enabling push notifications on an existing app, after changing the Bundle Identifier or signing setup, or after switching from automatic signing to manual signing.
How to check the configuration
1. Check the Push Notifications capability
In Xcode, select the app target and open “Signing & Capabilities.” If Push Notifications is missing, add it with “+ Capability.”
2. Check the entitlements
When push notifications are configured correctly, the signed app contains the APNs environment entitlement. A typical entitlement looks like this:
<key>aps-environment</key>
<string>development</string>
The value is determined by the provisioning profile. Distribution builds use the production environment. In normal projects, you should let Xcode and the provisioning profile manage this value instead of hard-coding it manually.
3. Inspect the entitlements in the signed app
codesign -d --entitlements :- /path/to/YourApp.app
Check whether the output contains aps-environment.
Fix 1: Add Push Notifications in Xcode
- Select your project in the Project Navigator.
- Select the app target.
- Open “Signing & Capabilities.”
- Click “+ Capability.”
- Add “Push Notifications.”
If you use automatic signing, Xcode normally updates the required signing configuration for the App ID and provisioning profile.
Fix 2: Enable Push Notifications for the App ID
Open “Certificates, Identifiers & Profiles” in the Apple Developer account, select the App ID, and confirm that Push Notifications is enabled. Changing a capability on an App ID can invalidate existing provisioning profiles.
Fix 3: Regenerate the provisioning profile
If you use manual signing, create a new provisioning profile after enabling Push Notifications and select the new profile in Xcode. An older profile may not contain the aps-environment entitlement.
Fix 4: Refresh automatic signing
Confirm that “Automatically manage signing” is enabled as intended and verify the selected Team and Bundle Identifier. Then clean the build folder and create a new Archive.
Fix 5: Remove unused push-notification code
If your app does not actually use remote notifications, check whether notification registration code or an SDK is still present.
UIApplication.shared.registerForRemoteNotifications()
Code like this, or an SDK that registers for remote notifications internally, can cause App Store Connect to treat the app as using push-related functionality.
If you use a Notification Service Extension
Check the Signing & Capabilities settings for the extension target as well as the main app. Each target needs consistent Team, Bundle Identifier, signing, and provisioning settings.
Important notes
APNs server authentication can use either certificates or token-based authentication, but the app target still needs the correct Push Notifications capability and entitlement.
Summary
“Missing Push Notification Entitlement” means the app’s push-notification usage and its signing entitlements do not match. Start by enabling Push Notifications in Xcode, then verify the App ID, provisioning profile, and the aps-environment entitlement inside the signed app. In many cases, refreshing or regenerating the provisioning profile after enabling the capability resolves the issue.
