Missing Push Notification Entitlement
Yes, that's the cause of the App Store rejection. If your ad-hoc provisioning profile has the aps-environment key, it means your app is configured correctly in the Apple Provisioning Portal. All you need to do is delete the App Store distribution profile on your local machine, then re-download and install the distribution profile from the Provisioning Portal. This new one should contain the aps-environment key.
First App ID
make sure your ID push notification enable in production side
as appear in picture
Second Certificate
from production section create two certificate with your id (push notification enabled)
App Store and Ad Hoc certificate
Apple Push Notification service SSL (Sandbox) certificate
Third Provisioning Profiles
From Distribution section create App Store profile with your id
Finally
while you upload your bin , you must check what provisioning profile usedand have many entitlements
this all cases cause this problemhope this be helpful with you
In XCode 8 you need to enable push in the Capabilities tab on your target, on top of enabling everything on the provisions and certificates:Xcode 8 "the aps-environment entitlement is missing from the app's signature" on submit
My blog post about this here.