在提交二进制构建后,我收到了来自苹果的警告邮件。
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
9条答案
按热度按时间0lvr5msh1#
我很确定这是苹果检查系统的一个错误。我昨天上传了一个应用程序,收到了这个消息。这个应用程序已经更新了至少30次,没有任何问题。我没有添加任何推送通知代码在最后一个版本,我没有使用任何框架,如PhoneGap或 cordova ,可能会导致这个消息。它没有出现在设备上的通知。
我已经搜索了应用程序的推送通知代码没有找到任何东西:
grep -r“注册用户通知设置”。
grep -r“远程通知类型的注册表”。
我最终尝试上传7月份通过审核的前一个版本(没有生成电子邮件)。这次我收到了这个版本的警告邮件。所以我认为苹果错了,我会抓住机会,希望它能通过审核,尽管有警告。
编辑:在苹果开发者论坛上找到了苹果员工的回复:
“那份通知只是警告,不是拒绝。
应用验证器检查UIApplicationDelegate方法application:didRegisterForRemoteNotificationsWithDeviceToken的实现:如果您的应用委托实现了该方法,并且没有aps-environment权利,则会收到您描述的警告。
即使你的应用不对推送通知做任何事情,你使用的第三方库也可能已经实现了该方法。在这种情况下,你可以忽略该警告。它的作用是让使用推送通知的开发者知道他们是否对应用进行了错误的签名。”
编辑2:我现在有两个不同的应用程序,尽管生成了警告电子邮件,但它们都已获得批准,没有任何问题
qlzsbp2j2#
以下是一些您可能需要仔细检查的事项:
苹果开发者中心
在部分 * 标识符 〉 应用程序ID * 中,如果您未实施 * 推送通知 *,则不应启用它们。
每次启用或禁用服务时,您都必须生成新的移动的设置。确保 * 推送通知 * 未列在启用应用的服务中:
Xcode项目目标设置
在应用程序目标的 * 功能 * 选项卡中,应关闭 * 推送通知 *。
此外,在 * 后台模式 * 中,不应有任何 * 远程通知 * 模式。
应用程序委托
最后,请确保您的应用程序委托未注册远程通知,并且未实现任何远程通知委托方法。您应确保未调用或实现以下方法:
registerForRemoteNotifications()
(在iOS 8.0
之前的registerForRemoteNotificationTypes()
)unregisterForRemoteNotifications()
isRegisteredForRemoteNotifications()
application(_:didRegisterForRemoteNotificationsWithDeviceToken:)
application(_:didFailToRegisterForRemoteNotificationsWithError:)
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
application(_:handleActionWithIdentifier:forRemoteNotification:completionHandler:)
application(_:didReceiveRemoteNotification:)
希望能有所帮助!
9cbw7uwe3#
我收到了同样的电子邮件,但它似乎只是一个警告,我的应用程序设法获得批准的商店。
我有一个应用程序,我一直在更新在过去2年,它没有推送通知,它一直很好,直到我最近发布时,我得到了这个警告。联系苹果后,似乎这只是一个警告,不应该考虑。我认为这是一个错误,他们的一方,所以希望他们会得到它在下一次Xcode更新修复。
zour9fqk4#
转到目标〉功能,
应启用推送通知且无任何问题,还应启用后台模式。
w6mmgewl5#
对我来说,这看起来也像是苹果的一个bug。我的应用程序的最新版本也收到了警告,但在一周内就被批准了。在这个新版本中,我使用了一个非常简单的Today小部件。因此,我必须链接NotificationCenter框架。这个小部件报告来自包含应用程序的一些数据。要做到这一点,它只是使用通过应用程序组权限共享的NSUserDefaults。没有什么比推送通知更安全的了。
苹果写道,推送通知可以用来管理“今日”小部件:
https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/NotificationCenter.html
也许正是由于这个原因,包括NotificationCenter框架确实触发了警告,尽管是错误的。
6vl6ewon6#
我将从搜索
registerForRemoteNotificationTypes
或registerUserNotificationSettings
的代码开始,这两个代码都用于注册推送通知(取决于操作系统的版本)。如果你发现了其中一个,那就是问题所在。如果你不使用通知,你需要删除它们。
也许问题是你正在使用本地通知,不小心也注册了远程通知?
7dl7o3gd7#
经过一个月的深入研究和尝试,这对我很有效:缺少推送通知权利警告
fae0ux8s8#
我在更新一些pod时收到了这个警告(FacebookSDK就是其中之一),我假设其中之一正在实现
UIApplicationDelegate
方法application:didRegisterForRemoteNotificationsWithDeviceToken:
,这就是为什么我从现在开始忽略这个警告。ax6ht2ek9#
我是在添加了NSPhotoLibraryUsageDescription之后收到这条消息的... NSPhotoLibraryUsageDescription访问照片库的权限...因为我内置了flutter,然后使用Xcode发布,所以我在pubspec.yaml中添加了一个新的构建号,并关闭了Flutter。然后在Xcode中,我也添加了新的构建号。
确保Flutter和Xcode都已关闭,使用终端导航到我的项目目录并执行以下操作:
Flutter清除Flutter构建ios
使用Xcode上传新构建后,我没有再次收到警告。