React Native, ITMS-90078: Missing Push Notification Entitlement
Solution 1:
Add the push notification capability in signing&capability -> capability -> push notification. Make sure to add It to both the release and debug tab.
Solution 2:
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