Flutter iOS应用提交问题警告:缺少推送通知权利

Sur*_*gch 7 app-store apple-push-notifications ios flutter

将Flutter应用上传到App Store Connect之后,我收到以下电子邮件警告:

亲爱的开发人员,

我们发现您的应用“ [[APP NAME]””最近交付时出现了一个或多个问题。您的交付成功,但是您可能希望在下一次交付中更正以下问题:

缺少推送通知权利 -您的应用似乎已在Apple推送通知服务中注册,但应用签名的权利不包括“ aps-environment”权利。如果您的应用程序使用Apple Push Notification服务,请确保在Provisioning Portal中为您的Push ID启用了您的App ID,并在使用包含“ aps-environment”权利的Distribution Provisioning配置文件对您的应用程序进行签名后重新提交。Xcode不会在构建时自动从供应配置文件复制aps环境权利。此行为是故意的。要使用此权利,请在项目编辑器的“功能”窗格中启用“推送通知”,或将权利手动添加到您的权利文件中。有关更多信息,请参见 https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1

解决问题之后,可以使用Xcode或Application Loader将新的二进制文件上传到App Store Connect。

最好的祝福,

App Store团队

我没有在应用程序中使用推送通知吗?为什么会收到此警告?我如何删除“ aps-environment”权利,无论其在何处以及什么地方?

注意:这个App Store问题在SO上已经出现过多次,有时是因为人们需要添加推送通知(请参阅thisthis),有时是因为他们没有这样做(请参阅thisthis)。不过,在我看来,这与Flutter有关,所以我添加了一个新问题。

Par*_*iya 14

我的修复似乎只修复了日志。即使委托方法是动态实现的,Apple 仍会发送电子邮件。

在我们修复它之前,您现在可以做的一件事是为您的 iOS 应用程序启用推送通知功能。

Xcode 有一个简单的方法来做到这一点。为此,您必须在签名和功能下添加“推送通知” 。Xcode 将为您生成“ ”文件。你可以关注这里Runner.entitlements

  1. 用 Xcode 打开你的 ios 文件夹

  2. 所述 转轮 仍然选择的目标中,单击 签名与能力 标签,然后单击 +能力按钮。在过滤器字段中键入“push”,然后按 Enter。

    在此处输入图片说明

  3. 添加推送通知权利后,您的项目应如下所示并且该Runner.entitlements文件将已在您的项目中创建

    在此处输入图片说明 在此处输入图片说明


chr*_*itz 12

我的应用程序确实使用推送通知,所以我想确保它正常工作。我发现这篇文章非常有帮助:Flutter/App Store Connect warning: ITMS-90078 Missing Push notification Entitlement

\n

在 XCode 中打开 Flutter 项目 (Runner)。\n在“签名和功能”下,按“+Capability”并向下滚动以找到“推送通知”。\nXCode 将生成 \xe2\x80\x9cios/Runner/Runner.entitlements\xe2 \x80\x9d 文件。\n完成。我的构建出现在下一次尝试中。

\n


Sur*_*gch 11

俗话说,只要您真的不使用推送通知,就不会导致您的应用被拒绝。因此,您可以放心(?)忽略此警告,然后继续提交您的应用程序。

在GitHub上说明这个问题在这里和解决方案正在讨论在这里。显然,它与使用UIApplicationDelegate回调的Flutter相关:

- (void)application:(UIApplication*)application
    didReceiveRemoteNotification:(NSDictionary*)userInfo
          fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
Run Code Online (Sandbox Code Playgroud)

我会让别人更清楚地解释确切原因。密切关注GitHub问题。

现在,我只是忽略警告。

更新:我提交了我的应用程序,该应用程序已被接受,从那时起它就没有任何问题。因此,请忽略警告。

  • 我刚刚更新了 flutter,但仍然遇到这个问题@VinceVarga,有什么想法吗?来自 Flutter doctor:通道稳定,v1.5.4-hotfix.2,在 Mac OS X 10.14.5 18F132 上,区域设置 en-US (3认同)
  • 它不仅仍然是一个错误,而且自 2023 年 12 月起,Apple 确实拒绝了我们的应用程序。在我们设置推送权限之前,它会从商店中删除。我们没有使用推送。所以现在这很关键。 (3认同)
  • 我今天(2021 年 12 月 2 日)创建了一个应用程序并提交了它,它不使用推送通知,但仍然收到了可怕的电子邮件。 (2认同)

Osi*_*Osi 6

直到今天,这个问题在 Flutter 中仍未解决。请参阅问题 9984

虽然这不应该导致 App Store 中的任何拒绝,但它仍然需要修复并且似乎有一个解决方法(也在上面的问题中描述):

在 ios/Runner/ Runner.entitlements下添加一个文件Runner.entitlements,内容如下:

<?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>
Run Code Online (Sandbox Code Playgroud)


Fai*_*Dae 5

我们的应用程序不使用推送通知功能,但 Flutter 使用 UIApplicationDelegate 回调(源)。App Store Connect 不会拒绝我们的应用程序分发(只要我们实际上没有使用推送通知)。这是一条警告消息。有些人可能会忽略这个警告。

\n

解决方案:

\n

如果您想(某种程度上)解决此警告,可以使用以下解决方法:

\n
    \n
  1. 在XCode中打开Flutter项目(Runner)。
  2. \n
  3. 启用“功能”下的“推送通知”。(参考下面的截图)
  4. \n
  5. XCode 将生成 \xe2\x80\x9cios/Runner/Runner.entitlements\xe2\x80\x9d 文件。
  6. \n
  7. 完毕
  8. \n
\n

在此输入图像描述

\n

参考

\n
    \n
  • \xe2\x80\x9cios/Runner/Runner.entitlements\xe2\x80\x9d 文件的内容(由 XCode 生成):
  • \n
\n

\r\n
\r\n
<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0">\n<dict>\n    <key>aps-environment</key>\n    <string>development</string>\n</dict>\n</plist>
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n