Hello!
We have a pretty robust codebase that has APNs enabled for the base app. We recently added a WidgetKit extension to replace our old widget from pre-iOS 14.
Our working provisioning profiles (before this addition) were generally as such:
- Our main target has APNs enabled and configured (and has for ~6 years), testing push notifications on our previous release works as intended
- Our old widget does not have APNs enabled, since it doesn't support push notifications
What we added was: 3. A new iOS14+ widget extension without APNs enabled
Ever since we added the third provisioning profile, we've received the warning:
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.
Although this is just a warning, we've also tested and failed to receive remote push notifications on our TestFlight build.
We've tried:
- Enabling & disabling the APNs capability in the WidgetKit extension's provisioning profile (& regenerating certificates via Fastlane)
- Manually adding in the
aps-environment
entitlement to the WidgetKit's entitlements file with the capability enabled in the provisioning profile - Checking our CI configuration to ensure it's not somehow caching a stale certificate (we use CircleCI)
- Looking line-by-line at the
project.pbxproj
file changes that occurred when adding the new extension to ensure we didn't change any existing configuration by accident
Our last ditch effort is to completely remove the widget, which will be quite tedious and difficult given the amount of changes it made to our project file, and how many more commits were merged in since then.
Any guidance would be very much appreciated!
Thanks,
Deborah