Flutter iOS app submission issue warning: Missing Push Notification Entitlement

IosFlutterApple Push-NotificationsApp Store

Ios Problem Overview


After uploading a Flutter app to App Store Connect, I got the following email warning:

> Dear Developer, > > We identified one or more issues with a recent delivery for your app, > "[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 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 use Xcode or Application > Loader to upload a new binary to App Store Connect. > > Best regards, > > The App Store Team

I don't use push notifications in my app? Why am I getting this warning? And how do I remove the "aps-environment" entitlement, wherever and whatever that is?

Note: This App Store issue has appeared multiple times on SO, sometimes because people needed to add push notifications (see this and this) and sometimes because they didn't (see this and this). This appears to be Flutter related in my case, though, so I am adding a new question.

Ios Solutions


Solution 1 - Ios

Word on the street is that as long as you really don't use push notifications this will not cause your app to get rejected. So you can safely (?) ignore this warning and continue to submit your app.

This issue was described on GitHub here, and a solution is being discussed here. It's apparently somehow related to Flutter using the UIApplicationDelegate callback:

- (void)application:(UIApplication*)application
    didReceiveRemoteNotification:(NSDictionary*)userInfo
          fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;

I'll let someone else explain the exact reason more clearly. Keep an eye on the GitHub issue.

For now I am just going to ignore the warning.

Update: I submitted my app, it was accepted, and there hasn't been any problem with it since then. So just ignore the warning.

Solution 2 - Ios

As of today this problem is still not fixed in Flutter. See the Issue 9984.

While this should not cause any rejects in the App Store it still needs to be fixed and there seems to be a workaround for this (also described in the issue above):

Add a file Runner.entitlements under ios/Runner/Runner.entitlements with this content:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>aps-environment</key>
	<string>development</string>
</dict>
</plist>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSuragchView Question on Stackoverflow
Solution 1 - IosSuragchView Answer on Stackoverflow
Solution 2 - IosZsoltView Answer on Stackoverflow