Does app need to be re-uploaded to include push notification certificate? - ios

I have an app that uses push notifications. These notifications work perfectly in development, but I have problems in production. When I signed and uploaded my app to the App Store, I didn't realize that I haven't habilitated the push notifications.
Do I have to add a new provisioning profile and re-upload the app just to fix this?
I'm using the same certificate and the same xx.p12.

Yes. After you complete the production push notification certificate setup you need to regenerate your provisioning profile and resign your app.
The reason for this is that the provisioning profile contains entitlements related to the push notification service and the all important aps-environment information.
If you do not recreate the provisioning profile these entitlements and information will not be included.
For more information you can view the Local and Push Notification Programming Guide, specifically the provisioning section.

Related

Missing Push Notification Entitlement aps-environment issue

I have been trying to upload my app to store but every time I have the issue:
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 theProvisioning 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 enablePush Notifications` in the project editor's Capabilities pane, or manually add the entitlement to your entitlements file. For more information, see Configuring Remote Notification Support.
I always used same steps to upload my app but after I regenerate the Keys this began to happen. I already try:
create new Provision Profile, also renaming
uncheck/check Automatically Manage Signing
enable Push Notifications on Capabilities
reinstall Xcode cleaning all
regenerating all keys
Non of them seems to work.
Please, help me!

My production ios app doesn't have push notifications working

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
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.

Missing Push Notification Entitlement: While Resigining ipa

Team,
We are releasing new update to our project, In the last version we dont have Push Notifications now are implementing all the process.
We work for a client where we used to send ipa file with our distribution profile (Push notifications are working for the ipa we are sending).
Once we send the working ipa, they will resign the ipa with there Distribution Profiles and Upload to appstore.
We have checked all the scenarios like, App Id enabled with Push Notification,SSl generated for Distribution (Is it mandatory for developing for developer also?).
The Resigning is successfull and we are able to upload the app to App Store.
But still we are getting the Below mail from Apple. Please Suggest what is the Solution for it
Missing Push Notification Entitlement - Your app includes an API for
Apple's Push Notification service, but the aps-environment entitlement
is missing from the app's signature. To resolve this, make sure your
App ID is enabled for push notification in the Provisioning Portal.
Then, sign your app with a distribution provisioning profile that
includes the aps-environment entitlement. This will create the correct
signature, and you can resubmit your app. See "Provisioning and
Development" in the Local and Push Notification Programming Guide for
more information. If your app does not use the Apple Push Notification
service, no action is required. You may remove the API from future
submissions to stop this warning. If you use a third-party framework,
you may need to contact the developer for information on removing the
API.
You have to check if you have enabled push notifications in member
center for the provisioning profile that you are using
You have to check if you have enabled push notifications in xcode
capabilities
i.e
just check Entitlements.plist for the following key values
<key>aps-environment</key>
<string>production</string>

Missing Push Notification Entitlement and my app doesn't include it

Recently I've uploaded one app with push notification support successfully, and then i wanted to update other apps on the store that doesn't include push notification at all and i don't want to include this feature in it. and when i always submit it it says that :
Missing Push Notification Entitlement - Your app appears to include
API used 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. See "Provisioning and Development" in the Local and Push
Notification Programming Guide for more information. If your app does
not use the Apple Push Notification service, no action is required.
You may remove the API from future submissions to stop this warning.
If you use a third-party framework, you may need to contact the
developer for information on removing the API.
I've no idea whats happening with Xcode and this issue is so confusing check this :
If your ad-hoc provisioning profile has the aps-environment key, that 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.
Make sure you have removed aps-environment key from your profile in portal.
Please ensure that your code does not contain following methods:
- (void) application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken;
- (void) application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error;
And the method call to register for notification:
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];
If these methods are not there then please re-create distribution provisioning profile and re-build you application with it.
If you want to enable push notification in an app, you need to create fixed bundleID like: "com.appname.app" and provisioning profile for the same.
WildCard bundle id and provisioning profile will not work for Push notification as payload needs fixed address for delivery.
So please try with the fixed BundleID and provisioning profile.
You have probably introduced a 3rd party SDK that is ready for push notifications. That doesn't necessarily mean that you need to send push notifications. That's why it's only a warning and you shouldn't care.
Apple tells you about it just in case you really wanted to send push notifications.

Provisioning profile and push notification certificate

I've been given a task to (re?)enable push notification for the company iOS app and don't know where to begin.
I learned that provisioning profile contains information on which app services are enabled, so
I logged into the apple developer center and got to the Certificates,Identifiers & Profiles page, but saw that Development iOS Provisioning Profile was already enabled with Push Notification.
However in the App IDs section, it shows Push Notification as configurable with a yellow dot.
Does this mean that the push notification is no longer working?
If that is the case, would regenerating the push notification certificate fix it? or would I have to create a new provisioning profile as well?
Thanks!
I meet the same problem. I had it token care of!
You need to add iOS push certificateļ¼
https://developer.apple.com/account/ios/certificate/certificateCreate.action
Apple Push Notification service SSL (Sandbox & Production).
Push certificate had been expired so it required creating a new push certificate. This invalidated provisioning profile with associated app id, so I had to re-generate the provisioning profile as well.
If in the App iD of your App its says Configurable then you better start by creating a new certificate, if not then try to get the exact private key of your CSR, your certificate and your pem file which you might have used earlier. It would do well to re-configure the entire thing actually, a mismatch between the private key would never allow you to receive the notifications

Resources