Missing Push Notification Entitlement
I am pretty certain that it is a bug in Apples checking system. I uploaded an app yesterday and got this message. This app has been updated at least 30 times without any problems. I didn't add any push notification code in the last version and I don't use any frameworks like PhoneGap or Cordova that could cause this message. It doesn't appear under notifications on the device.
I have searched the app for push notification code without finding anything:
grep -r "registerUserNotificationSettings" .
grep -r "registerForRemoteNotificationTypes" .
I finally tried to upload the previous version that was approved in July (and didn't generate an email). This this time I got the warning email also for this version. So I think that Apple is wrong and I will take my chances and hope it will be approved despite the warning.
EDIT: Found this reply from an Apple staff in Apple Developer Forum:
"That notice is a warning only, not a rejection.
The app validator checks for an implementation of the UIApplicationDelegate method application:didRegisterForRemoteNotificationsWithDeviceToken: in the app. You’ll get the warning you described if your app delegate implements that method and there is no aps-environment entitlement.
It's possible that a third-party library you're using has implemented that method even though your app doesn't do anything with push notifications. In that case you can just ignore the warning. It's there to let developers who do use push notifications know if they might have signed their app incorrectly."
EDIT 2: I now have two different apps that have been approved without any problems despite generating the warning email
I am receiving the same email but it seems to only be a warning and my apps managed to get approved to the store.
I have an app that I have been updating in the past 2 years, it does not have push notifications and it's been all good so far until my recent release when I got this warning. After contacting Apple it seems this is just a warning and should not be considered. I think it's an error on their side so hopefully they will get it fixed in the next Xcode update.
Here are a few things you might want to double check:
Apple Developer Center
In the section Identifiers > App IDs, Push Notifications should not be enabled if you are not implementing them.
You will have to generate a new mobile provisioning each time your enable or disable a service. Make sure Push Notifications is not listed in your app enabled services:
Xcode project target settings
In the Capabilities tab of your application target, Push Notifications should be turned off.
Also, in Background Modes, there should not be any Remote Notifications mode.
Application Delegate
Finally, make sure you're not having your application delegate registering for remote notifications and that it is not implementing any remote notification delegate methods. You should make sure the following methods are not called or implemented:
registerForRemoteNotifications()
(registerForRemoteNotificationTypes()
prior toiOS 8.0
)unregisterForRemoteNotifications()
isRegisteredForRemoteNotifications()
application(_:didRegisterForRemoteNotificationsWithDeviceToken:)
application(_:didFailToRegisterForRemoteNotificationsWithError:)
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
application(_:handleActionWithIdentifier:forRemoteNotification:completionHandler:)
application(_:didReceiveRemoteNotification:)
Hope that helps!
Go to Target > Capabilities,
Push notification should be enabled without any issues and Background mode also should be enabled.