缺少推送通知权利

Missing Push Notification Entitlement

我在提交二进制构建后收到了来自 Apple 的警告邮件。

    Missing Push Notification Entitlement - Your app appears to include API used 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. 
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.

我没有使用推送通知或任何第三方框架,如 Coredova,但我不确定为什么我会一次又一次地收到此警告。我浏览了以下链接,但到处都是第三方框架问题。

我不想启用推送通知服务,因为我不会在我的应用程序中使用它。任何帮助修复此警告将不胜感激。提前致谢。

注意:我已经多次尝试删除并重新创建我的配置文件和证书。

Missing Push Notification Entitlement warning

Missing Push Notification Entitlement

IOS Missing Push notification entitlement

我将从搜索 registerForRemoteNotificationTypesregisterUserNotificationSettings 的代码开始,它们都用于注册推送通知(取决于 OS 的版本)。

如果您找到其中之一,那就是问题所在。如果您不使用通知,则需要删除它们。

问题可能是您在使用本地通知的同时不小心注册了远程通知?

我很确定这是 Apple 检查系统中的错误。我昨天上传了一个应用程序并收到了这条消息。这个应用程序已经更新了至少 30 次,没有任何问题。我没有在上一个版本中添加任何推送通知代码,也没有使用任何可能导致此消息的框架,如 PhoneGap 或 Cordova。它不会出现在设备的通知下。

我在应用程序中搜索了推送通知代码,但没有找到任何内容:

grep -r "registerUserNotificationSettings" .
grep -r "registerForRemoteNotificationTypes" 。

我终于尝试上传 7 月批准的先前版本(但没有生成电子邮件)。这次我也收到了这个版本的警告邮件。所以我认为Apple是错误的,我会抓住机会,希望它能不顾警告获得批准。


编辑:在 Apple 开发者论坛中找到来自 Apple 员工的回复:

“该通知只是警告,不是拒绝。

应用程序验证器检查 UIApplicationDelegate 方法 application:didRegisterForRemoteNotificationsWithDeviceToken 的实现:在应用程序中。如果您的应用程序委托实现了该方法并且没有 aps-environment 授权,您将收到您描述的警告。

即使您的应用未对推送通知执行任何操作,您使用的第三方库也可能实现了该方法。在这种情况下,您可以忽略该警告。它可以让使用推送通知的开发人员知道他们是否错误地签署了他们的应用程序。"


编辑 2:尽管生成了警告电子邮件,但我现在有两个不同的应用程序已获得批准,没有任何问题

以下是您可能需要仔细检查的一些事项:

苹果开发者中心

Identifiers > App IDs 部分中,Push Notifications 不应启用,如果你没有实施它们。

每次启用或禁用服务时,您都必须生成新的移动配置。确保 推送通知 未在您的应用启用服务中列出:

Xcode 项目目标设置

在应用程序目标的 Capabilities 选项卡中,Push Notifications 应该关闭。

此外,在后台模式中,不应该有任何远程通知模式。

应用委托

最后,确保您的应用程序委托没有注册远程通知,并且它没有实现任何远程通知委托方法。您应该确保未调用或实施以下方法:

  • registerForRemoteNotifications()registerForRemoteNotificationTypes()iOS 8.0 之前)
  • unregisterForRemoteNotifications()
  • isRegisteredForRemoteNotifications()
  • application(_:didRegisterForRemoteNotificationsWithDeviceToken:)
  • application(_:didFailToRegisterForRemoteNotificationsWithError:)
  • application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
  • application(_:handleActionWithIdentifier:forRemoteNotification:completionHandler:)
  • application(_:didReceiveRemoteNotification:)

希望对您有所帮助!

经过 1 个月的深入研究和跟踪,这对我有用:Missing Push Notification Entitlement warning

对我来说也像是 Apple 的错误。我的应用程序的最新版本也收到了警告,但在一周内就获得了批准。在这个新版本中,我使用了一个非常简单的 Today 小部件。因此,我必须link NotificationCenter 框架。该小部件报告来自包含应用程序的一些数据。为此,它仅使用通过 App Groups 授权共享的 NSUserDefaults。没有什么比推送通知更复杂的了。

Apple 写道推送通知可用于管理今日小部件:

https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/NotificationCenter.html

也许由于这个原因,包括 NotificationCenter 框架确实触发了警告,尽管是错误的。

我收到了同一封电子邮件,但它似乎只是警告,我的应用已成功获得商店批准。

我有一个在过去 2 年中一直在更新的应用程序,它没有推送通知,并且在我收到此警告时最近发布之前一切都很好。联系 Apple 后,这似乎只是一个警告,不应考虑。我认为这是他们方面的一个错误,所以希望他们能在下一次 Xcode 更新中修复它。

转到目标 > 功能,

推送通知应该没有任何问题地启用并且后台模式也应该启用。

我只是通过更新一些 pods(FacebookSDK 就是其中之一)得到了这个警告。我假设其中之一正在实施 UIApplicationDelegate 方法 application:didRegisterForRemoteNotificationsWithDeviceToken: 这就是为什么从现在开始我将忽略警告。

此消息实际上是一个警告,表明您的代码中某处使用了注册推送令牌的方法(表示您的应用正在尝试使用推送通知),但由于缺少所需的权利,此功能将无法使用。

目前看来,如果不使用 APN,则可以忽略该警告。

第三方库可能已经实现了此功能,即使您的应用并未使用它。在这种情况下,您可以忽略该警告。不过,您可能希望在发布应用之前了解您的应用中包含的每个库在做什么,以避免将来发生此类不必要的意外。

我在添加 NSPhotoLibraryUsageDescription 后收到了这条消息... NSPhotoLibrary使用说明 访问照片库的权限 ... 由于我内置了 flutter 然后使用 Xcode 发布,所以我在 pubspec.yaml 中添加了一个新的构建号并关闭了 Flutter。然后在 Xcode 中,我还添加了新的内部版本号。

确保 Flutter 和 Xcode 都已关闭,使用终端导航到我的项目目录并执行以下操作:

扑干净 颤动构建 ios

使用 Xcode 上传新版本后,我没有再次收到警告。