将新版本上传到 iTunes 后,我收到推送通知权利问题
Posted
技术标签:
【中文标题】将新版本上传到 iTunes 后,我收到推送通知权利问题【英文标题】:After uploading new build to iTunes I got push notification entitlement issue 【发布时间】:2015-09-03 10:50:30 【问题描述】:我们发现您最近交付的一个或多个问题 “应用程序名称”。您的交付成功,但您可能希望 在您的下一次交付中更正以下问题:
缺少推送通知权利 - 您的应用似乎包含 用于向 Apple Push Notification 服务注册的 API,但 应用签名的权利不包括“aps-environment” 权利。如果您的应用使用 Apple Push Notification 服务, 确保您的 App ID 在 配置门户,并在使用 包含“aps-environment”的分发配置文件 权利。参见本地和推送中的“配置与开发” 通知编程指南了解更多信息。如果你的应用有 不使用 Apple 推送通知服务,无需任何操作。 您可以从以后的提交中删除 API 以停止此警告。 如果您使用第三方框架,您可能需要联系 开发者获取有关删除 API 的信息。
纠正问题后,您可以使用 Xcode 或 Application 加载程序将新的二进制文件上传到 iTunes Connect。
问候,
App Store 团队
这里的主要信息
如果您的应用使用 Apple 推送通知服务
但我没有添加任何推送通知 API 方法。
如何检查哪个库使用了推送通知方法或框架?
【问题讨论】:
【参考方案1】:这是 Apple 验证软件中的错误。你可以忽略它。
来自https://forums.developer.apple.com/thread/15011:
我在 MachO View 中调查了这个问题,以确认它是 假阳性。
我可以在 AppDelegate.o 中看到 - 虽然符号表中没有对 application:didRegisterForRemoteNotificationsWithDeviceToken: 的引用..
$ nm ./AppDelegate.o | grep application:didRegisterForRemoteNotificationsWithDeviceToken
$
我确实发现 grep 输出匹配,正如其他评论者的报告中所证实的那样。
$ grep application:didRegisterForRemoteNotificationsWithDeviceToken ./AppDelegate.o
Binary file ./AppDelegate.o matches
我将二进制文件加载到 MachO 视图中(见下面的屏幕截图)并找到 application:didRegisterForRemoteNotificationsWithDeviceToken:、application:didFailToRegisterForRemoteNotificationWithError: 和所有其他 UIApplicationDelegate 方法 - 在 __TEXT 段中,__objc_methname 部分 - 存储的 c 字符串文字列表objc 选择器名称
MachO 查看 __TEXT,__objc_methname 部分的屏幕截图,其中包含 UIApplicationDelegate 方法列表: http://imgur.com/JXgCjjm
我在这里用 otool 确认了这个发现:
$ otool -v -s __TEXT __objc_methname ./AppDelegate.o | grep didRegisterForRemoteNotificationsWithDeviceToken
000000000000bfbb application:didRegisterForRemoteNotificationsWithDeviceToken:
iTunes 的审核过程是基于字符串的,而不是基于 nm 的,因此他们对 didRegisterForRemoteNotificationsWithDeviceToken 的简单 grep 将始终记录误报。
【讨论】:
以上是关于将新版本上传到 iTunes 后,我收到推送通知权利问题的主要内容,如果未能解决你的问题,请参考以下文章
在 iTunes Connect 中上传具有新版本的应用程序时,应用程序图标未更改