React Native, ITMS-90078: Missing Push Notification Entitlement - ios

I have got this mail each time I publish my app to app store:
Dear Developer,
We identified one or more issues with a recent delivery for your app,
"{appName}" {version} ({build}). Your delivery was successful, but you
may wish to correct the following issues in your next delivery:
ITMS-90078: 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 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.
After you’ve corrected the issues, you can upload a new binary to App
Store Connect.
Best regards,
The App Store Team

Add the push notification capability in signing&capability -> capability -> push notification. Make sure to add It to both the release and debug tab.

For people that still have this issue or maybe another issue that happens with entitlements like com.apple.developer.associated-domain or com.apple.developer.applesignin I have a few tricks for this.
And I've already did some suggestions around the forum that I search about it like re-create the provisioning profile, keychain, certificates, etc and re-enable capability in XCode, automatic signing and manual signing provisioning profile in XCode even I did upgrade my XCode to 13 and my macOS but the issue still happens.
After I archived my code, I get this summary before I upload it to AppStore.
Actually I have another entitlements like aps-environment, com.apple.developer.applesignin and com.apple.developer.associated-domain. But the summary didn't include those entitlements.
Push Notif, Sign in with Apple and Universal Links work like charm in development mode, but when the I install from TestFlight those feature didn't work anymore. And I didn't get any error messages while archiving until finish upload it to AppStore just email warning about missing push notifications entitlements.
So, here's what I do:
Check the codesign of archive build for the app via terminal. codesign -d --entitlements :- ${path_to_your_bundle_app}. For me, the bundle app is in /Users/${user}/Library/Developer/Xcode/Archives/${date}/${app_name}/Products/Application/${app_name}.app/${app_name}.app.
And what I got is
I just realize that the bundle app didn't include any entitlements
And then I signing it manually from my entitlements file to the bundle app. codesign --sign - --entitlements ${path_entitlements_file}/${filename}.entitlements --timestamp=none ${path_to_your_bundle_app}
Back to XCode and go to Window->Organizer. And try Distribute the App again.
And finally the summary for all entitlements that I need is included.
I don't know why this happen to me. Maybe there are something wrong in my config in XCode or my project code. However, now it's work in TestFlight even though I should still signing it manually after I archived my app.
Maybe anyone can help me about this. My stack is
React Native 0.63.3
XCode 12.5 and I update to XCode 13
MacOS 11.6

Related

Apple Development Xamarin.Forms: ERROR ITMS-90163 When Delivering App to TestFlight

So I created an iOS app in Xamarin.Forms and I want to send it to TestFlight to send for certain people to test. I am using the application Transporter to send the ipa file to TestFlight. The first time I did it, it was successfully sent however in TestFlight it was just hanging on processing forever, I got an email saying:
We identified one or more issues with a recent delivery for your app,
"My App Name" 1.3 (1.3). Please correct the following issues, then
upload again.
with this included:
ITMS-90078: 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 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.
So in my app in Entitlements.plist I enabled Push Notifications. And in https://developer.apple.com/ I enabled Push Notifications in my Identifiers which is used for my profile. I also add Application Identifier in Entitlements.plist with the value of TEAMID.com.myorganization.MyApp and now I get this error when trying to deliver the app to TestFlight:
ERROR ITMS-90163: "Invalid Code Signing Entitlements. The entitlements
in your app bundle signature do not match the ones that are contained
in the provisioning profile. The bundle contains a key that is not
included in the provisioning profile: 'aps-environment'
What does this error mean and how to do I fix it? It seems to me like I need to include the Application Identifier to my provisioning profile and I have no idea how to do that, can anyone help, I have been stuck on this for days and none of the solutions out there havent worked for me.
Thanks,

Error in Xcode 12.2: Provisioning profile doesn't include the push notifications entitlement

I am new to Xcode and I'm trying to build an archive to upload to the App Store Connect, but I am getting the following error:
Provisioning profile <my_profile_name> doesn't include the Push Notifications entitlement.
My app has the push notification feature and I'm using Firebase Cloud Messaging to deliver those notifications.
What I have tried so far:
Check the "Automatically manage signing", but Xcode fails to
provision the target.
Delete the provisioning profiles in ~/Library/MobileDevice/Provisioning\ Profiles and let Xcode regenerate them, but the error persists.
Create my own Provisioning Profile on
https://developer.apple.com/. It has the push Notifications enabled
capability, but the downloaded version of it doesn't have the
entitlement.
Add, delete and add again the push notifications
capability in the "Signing and Capabilities" tab on XCode.
Edit the entitlements file, and have created new Provisioning Profiles without any success.
Finnally, I have solved this error!
The problem was in the entitlements files on my project: they were generated with two entries:
Push Notifications with the boolean value 1;
aps-environment with the string value 'production'.
The right entry for the Apple Push Notifications service is only the aps-environment, so I just deleted the Push Notifications entry and now I am able to build the archive!
Thank you all for helping me!
Try doing the following:
Select your app target in project targets.
Click on the signing & Capabilities tab.
Click + Capability and add the push notifications capability.
I'm having a similar problem as well. Spoke with someone at apple and they said a few other people had complained as well.
If I validate the app, it fails Mac App Store validation, saying application- name entitlement error. If I validate for external distribution and notarization, it works fine.
In the same week I've updated 3 other mac app store apps with all the same signing certificates, and everything works.
The app I'm having a persistant problem with was open when I upgraded to 12.1.lastX, and then to 12.2. My bad... that was where things got mucked up.
I've tried every suggestion I can find, to no avail. Will probably rebuild from the ground up, or just wait for an update to Xcode.
It's Apple that created the problem, not me. Sometimes they ruin things.

ITMS-90078: Missing Push Notification Entitlement

I created and submitted my iOS app to App Store Connect. But after submitting the build I got this email
We identified one or more issues with a recent delivery for your app, "HIITimer Interval Workout" 1.0.1 (1). Your delivery was successful, but you may wish to correct the following issues in your next delivery:
ITMS-90078: 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 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/con ... 94-CH6-SW1.
After you’ve corrected the issues, you can upload a new binary to App Store Connect.
When I tried to research this problem on forums etc. I see some people have said it's just a warning that can be ignored but on the App Store Connect website it says "Invalid Binary" in red. I tried to click "Submit for Review" again but I got the same email. Is there any chance it's going to get sent through if I don't do anything?
On the developer.apple.com end in the Identifier for my app's Capabilities I unticked Push notifications and created a new distribution provisioning profile and resubmitted but this did not fix it.
In the Standalone App Settings for LC, I do not see any options for Push Notifications. And I don't think I've created any in my app.
Mac Catalina Version 10.15.3.
iPhone X IOS 13.3.1
LiveCode 9.6.0 (dp3)
Xcode 10.1 & 11.3 placed in the iOS SDKs
We just released a version that contains the fix. Please upgrade and re-link the RN sdk
react-native unlink react-native-flurry-sdk && react-native link react-native-flurry-sdk
and type n while being asked if you need to integrate Flurry Push. This will guarantee that push related code won't be linked to your project. Please let me know if the problem still occurs. Thank you very much for your feedback!

App Store upload rejected by push entitlements problem

I had to make some changes in my old iPhone app in XCode.
When uploading it to the App Store I get the following problem:
"ITMS-90078: 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 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."
I have done it that it said. I regenerated all my certificates and so on, but it does not fix my issue.
When I click Fix issue, it comes again and again.
Anyway, I had it in my entitlements file (it does not help even if I update it to production)
My certs are ok:
What should I do?
Thanks a lot!
Finally, I could solve it:
I deleted all settings from Target / Build settings / Signing in XCode. I don't know exactly why it helped, probably it contained some settings from the past (note, it was not changed for years) that lead to this bug.
Although I leave my question here, hopefully it can save others day in the future.
Enable Push Notifications in Signing & Capabilities Section in Xcode.
I got the problem in xcode 11.3, then I fixed by this way:
Check and note your app Capability in Target -> Signing and Capabilities
Find and remove file name .entitlements in xcode bundle
Search and delete the value of "CODE_SIGN_ENTITLEMENTS" in target -> build settings -> search "CODE_SIGN_ENTITLEMENTS"
4. Add your app Capability again in Target -> Signing and Capabilities -> All

Xcode 8 "the aps-environment entitlement is missing from the app's signature" on submit

I've got an app that we've submitted dozends of versions to in the last 6 months and we do use APNS. I got the following email from Apple after upgrading to Xcode 8
Dear developer,
We have discovered one or more issues with your recent delivery for
APP_NAME. Your delivery was
successful, but you may wish to correct the following issues in your
next delivery:
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.
After you’ve corrected the issues, you can use Xcode or Application
Loader to upload a new binary to iTunes Connect.
Regards,
The App Store team
What is weird is I went to developer.apple.com -> Certificates, Identifiers & Profiles and my AppId does have Push Notifications enabled still. I'm not doing anything different then I've ever done on it so am curious if the Xcode 8 update broke something. Any ideas?
BTW: The link they put for the Push Notification Programming Guide was broken in the email, so that's not a good sign.
Very easy actually. For some reason it got disabled on Xcode 8 but go to Targets -> Capabilities and verify Push Notifications is all correct on that view. For me it had a "Fix Me" I had to click, and voila.
I also have the same problem, and I'm sure Push notification is off by default in Xcode8. I didn't notice it. Be careful about it.
There was a change in Xcode 8, where your entitlements no longer come from the App Identifiers, but from the capabilities selected in your app target. So, like Unome (the OP) said, you have to verify that Push Notifications is switched on.
For me, it wasn't a "Fix Me" button, but I had two entitlement files (one for development and one for distribution). Toggling the Push Notifications capability would add the aps-environment key - with the value development - to the development entitlements file, but it wouldn't add it to the distribution entitlements file. Copying the same key over to distribution worked to get rid of the warning email when uploading to iTunes Connect.
For most projects, it should be sufficient to toggle on Push Notifications, or if it's already on but the key isn't in the entitlements, try toggling it off and on again.
It's also worth noting that entitlements automatically get updated during archive. ie the entitlements generated for release builds can be different from entitlements generated for development builds. See here
During the app distribution process through the Xcode Organizer >
Archives tab, entitlements are set onto the app by way of the
provisioning profile used for code signing. It is important to be
aware that the re-application of entitlements at this phase creates
the opportunity for unintended entitlement differences between any
prior development builds you may have tested. The primary purpose of
this document is to verify that your entitlements are correct for your
distribution builds for beta testing and App Store submission.
From the Xcode release notes:
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. (28076333)
This is a great change as it was always quite odd that the aps-environment entitlement didn't require the plist, but many others did.
For those of you that do not want to just blindly press "Fix Me" and do not currently have an entitlements file, it is just a plist file which is referenced in your project's Build Settings under "Code Signing Entitlements"
After a day of struggle with Xcode 8 we could not figure out why the aps-environment development was NOT added to our debug builds. It was missing from the entitlements section in the built app for debug testing... even though we had ENABLED the new Capability and the entitlements file existed. The issue is that the entitlements file needs to be set for ANY SDK in the Xcode Build Settings for Debug Entitlements.
I got the same email from Apple using XCode 7.3.1. What I did to solve the problem was:
Under Capabilities > Set PUSH notification ON as stated in #Bruce Tsai answer.
Under Build-Settings > Code Signing > Code Signing Identity set the developer cert for debug and the distribution cert for release, as is shown in the image:
Automatically manage signing was off for me, i checked and working fine for me.
If you're using Firebase frameworks and aren't using push notifications there are two solutions 1. just put up with the 'issue' message that gets sent to your whole team every time uploading a binary. The app will still be accepted as a submission as long as you're not actually using notifications you can ignore the warning. or 2. do this: https://stackoverflow.com/a/46802075/7529450 . This will remove the annoying email notification and also get accepted as a submission.
Using Xcode 9 push Notifications was enabled.
I tried disabling/re-enabling Push Notification capabilities. (didn't work)
I tried disabling/re-enabling Automatically manage signing. (didn't work)
Turns out I had to delete and re-add my provisioning profiles. (see here how to do it)
You might have to disable/re-enable Automatically manage signing after wards.
For me the problem was because there were two entitlements files: Entitlements-Debug.plist and Entitlements-Release.plist. And only one of them (Debug) has needed settings in it.
Changing multiple value of Build Settings > Signing > Code Signing Entitlements to a single MyAppName/MyAppName.entitlements and then reenabling Capabilities > Push Notifications switcher did the trick for me.
Hope it helps.
One more option that worked: copy-pasting the source of AppName/Entitlements-Debug.plist into AppName/Entitlements-Release.plist.

Resources