缺少推送通知权利警告

时间:2015-01-14 14:43:18

标签: ios apple-push-notifications

我们已经创建了应用ID,分发证书和配置文件。推送通知最初未启用。

我们现在需要在应用程序中实现推送通知。

我们已在App D中启用了推送通知,检查配置文件,配置文件无效,更新了它,并下载了最新的配置文件以供下次使用。

然后,我们在代码中通过APNS集成推送通知API。

在iTunesConnect上传应用程序后,我们收到Apple发来的以下电子邮件:

  

亲爱的开发人员,

     

我们发现您最近为“Swanvi”发送的一个或多个问题。您的交付成功,但您可能希望在下次交付时更正以下问题:

     

缺少推送通知权利 - 您的应用似乎包含用于向Apple推送通知服务注册的API,但应用签名的权利不包括“aps-environment”权利。如果您的应用使用Apple推送通知服务,请确保在配置门户中为推送通知启用了您的应用ID,并在使用包含“aps-environment”权利的配置配置文件对应用进行签名后重新提交。有关详细信息,请参阅“本地和推送通知编程指南”中的“供应和开发”。如果您的应用不使用Apple推送通知服务,则无需执行任何操作。您可以从将来的提交中删除API以停止此警告。如果您使用第三方框架,则可能需要与开发人员联系以获取有关删除API的信息。

     

更正问题后,您可以使用Xcode或Application Loader将新二进制文件上传到iTunes Connect。

我们已重新检查了应用ID。推送通知已启用开发和生产。

在配置文件中,将显示“推送通知”选项。

为什么我们会通过电子邮件收到此警告?

7 个答案:

答案 0 :(得分:48)

您需要看到两件事:您的帐户在Xcode上使用的配置文件以及developer.apple上的配置文件

关于配置文件的全部内容。

第1步: 转到https://developer.apple.com/account/ios/certificate/,查看您的应用所需的Active iOS分发配置文件。然后点击它,确保Enabled Services已启用Push Notification。如果没有,则单击编辑并按照Apple提供的步骤启用它。如果启用则完美。

distribution link

第2步: 删除您看到的与应用相关的所有Invalid配置文件(仅适用于您的应用的无效配置文件)。我会在以下步骤中告诉你原因。

第3步: 转到Xcode - >偏好 - >查看详细信息(适用于您的帐户) - > [可选:要确保无效的消失,请单击任何配置文件,选择“在Finder中显示”,然后从该文件夹中删除/移动所有配置文件。]现在单击“下载所有配置文件”。这将用当前配置文件替换当前配置文件。点击完成。

第4步: 转到您的应用目标 - >构建设置 - >在代码签名中,展开您的配置文件以显示DebugRelease标签。默认情况下,它将处于自动状态(这就是为什么您的应用可能会自动使用我们刚刚在步骤2中删除的无效配置文件)。对于Release,要更安全,请选择Active配置配置文件,并启用推送通知,如步骤1所示。

就是这样。

您现在不应该收到任何电子邮件。

答案 1 :(得分:16)

@Djeeraj V.S.是正确的。 Cordova添加了一些条件编译,以删除不需要推送通知的应用程序的此要求。

您可以根据this answerClasses\AppDelegate.h中注释掉代码,但最好通过用户界面添加编译符号DISABLE_PUSH_NOTIFICATIONS,这样您就可以继续受益于未来的Cordova升级

我来自.NET背景,所以我熟悉条件编译,但不得不花一点时间研究如何让编译器标志在XCode中工作。

这里的魔术词是“预处理器宏”。以下是通过UI以图形方式完成的操作(请注意,这是在XCode 6.1中完成的方式):

enter image description here

希望这可以帮助其他人在同样的情况下。

答案 2 :(得分:9)

在我的情况下,我刚刚再次检查了项目属性中的“功能”页面,并在对应的APNS菜单中按下了“固定问题”。现在它必须看起来像这样 enter image description here

答案 3 :(得分:2)

我有同样的警告,这就是我如何解决它。

首先,当您归档项目时,如果您没有看到 aps-environment 并且您的应用使用了推送通知,则在权利下,您将收到问题中提到的警告。< / p>

FIX STEPS

1-确保您的分发配置文件在Apple门户网站中有效。   - 如果不是,则重新生成它。 2-如果您的分发配置文件有效,则在XCode中,导航至首选项,然后单击查看详细信息。此时,在配置配置文件下,请确保您没有无效的分发配置文件。如果存在无效的,则右键单击并将其移至废纸篓。如果您没有有效的,请从Portal下载。 3-转到构建设置 - &gt;代码签名,并为所有内容选择分发配置文件。

此时如果您存档,您可以在权利中看到aps-environment,并且不会收到警告电子邮件。

答案 4 :(得分:2)

就我而言,以下练习有效。 Xcode 9.2

  1. trans = 'log2'
  2. 中显示的已停用Automatically manage signing
  3. 手动导入配置文件。

答案 5 :(得分:0)

我有一个cordova应用程序,以前我曾在这里收到过通知,但想将其从应用程序中删除。我尝试按照上述答案进行操作,但是在上载版本时仍然遇到此问题。我意识到,我安装了一个插件,使用了通知设置,并以某种方式保持了一些用于通知的设置。

我通过完全删除ios平台cordova platform rm ios,再次添加cordova platform add ios并确保已从ios.jsonfetch.json文件中删除了该插件的方式解决了该问题。

答案 6 :(得分:0)

2021 Xcode 12.4

我遇到了类似的问题。我的应用程序使用推送通知。对于较旧的版本,我从未收到过来自 Apple 的此类电子邮件。我认为自动管理签名存在一些问题。
解决方案进行手动应用签名

  1. 已禁用自动管理出现在 Signing & Capabilities 中的签名
  2. 手动导入配置文件。 enter image description here
相关问题