0
votes

I keep getting this error from apple for my production app.

"Missing Push Notification Entitlement - Your app appears to register with the Apple Push Notification service, but the app signature's entitlements do not include the "aps-environment" entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the "aps-environment" entitlement. Xcode 8 does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor's Capabilities pane, or manually add the entitlement to your entitlements file. For more information, see https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1."

I am unsure what error is occurring in my app. The app does not send push notifications when I am using the production app, but works in the development app. My provisioning profile has push enabled, i added it in Xcode, and I created a .p12 file in keychain access. What am I missing. From the tutorial above I can't figure out what step I didn't take. Please let me know. Thank you

1

1 Answers

2
votes

First of all, let me tell you exactly what that error is saying.

If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the "aps-environment" entitlement.

When you are going to use push-notifications, you should have an appID that has push notification capability enabled. In development portal you can check whether it's enabled or not. When you click on app ID you are using, It will show clearly what capabilities are enabled. It should be there for both staging and production environments. If you enable capability for the development environment and not for production it's not going to work. So make sure you are using an app ID that has push notifications enabled for both environments.

Now read the error statement again. So according to the error, it's saying it's not enabled for app ID. If you create distribution provisioning profile first and later if you enable the capability to app ID, it's not going to work. So If you update the capability in your app ID, now again create distribution certificate with the app ID selected. This is what from the error.

Even there will be lots of reasons for push notifications are not working for the production environment. When you are creating push notification certificate there also you need to create push notification for the production environment. Development APNS and production APNS are two different. So make sure you are using production push certificate only when firing remote notification.