【问题标题】:Missing Push Notification Entitlement warning缺少推送通知权利警告
【发布时间】:2015-03-12 18:59:09
【问题描述】:

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

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

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

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

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

尊敬的开发者,

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

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

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

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

在供应配置文件中,会显示推送通知选项。

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

【问题讨论】:

  • 感谢您的回复。我已经阅读了参考资料,但对我来说并不那么富有成效,我已经完成了那里所写的所有内容。该应用处于等待审核阶段,该应用会被拒绝吗?
  • 大约一年半前,这将是拒绝应用程序的理由。我现在不太确定,因为我认为当您在管理器中“验证”应用程序时,现在会进行很多应用程序验证。因此,如果它通过了,您可能有机会获得批准,但不要指望它
  • 顺便说一句,有很多关于 aps 环境的建议,例如 stackoverflow.com/questions/14807129/…stackoverflow.com/questions/5719182/…
  • 嗨。 @Bis,我现在面临同样的问题。我的申请状态是“等待审核”。你能建议我该怎么做吗?此外,我没有在我的 iOs 应用程序中使用任何推送通知。

标签: ios apple-push-notifications


【解决方案1】:

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

这都是关于配置文件的。

第 1 步: 转到https://developer.apple.com/account/ios/certificate/ 并查看您的应用所需的Active iOS Distribution Provisioning Profiles。然后单击它并确保Enabled Services 已启用Push Notification。如果没有,请单击编辑并按照 Apple 提供的步骤启用它。如果启用就完美了。

第 2 步: 删除您看到的与应用程序相关的任何 Invalid 配置文件(只是您的应用程序的无效配置文件)。我会在下面的步骤中告诉你原因。

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

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

就是这样。

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

【讨论】:

  • 如何知道哪一个无效?我看到多个配置文件,例如“XC *”、“XC Adhoc”、“iOS Team ...”等。
  • @burakcalik XC 配置文件是 XCode 默认创建的配置文件。您应该使用您想要的,在大多数情况下,它是您使用正确的应用程序证书自己创建的配置文件。对我来说,“XC *”和“XC Adhoc”要么无效,要么不正确的配置文件,所以我删除了它们。你也可以这样做......在任何情况下都不会破坏,所以不要担心。如果需要,XCode 将生成一个新的配置文件。
  • 刷新按钮不再存在。 XCode 8
  • @JamesO'Brien 请为 XCode 8 及更高版本单击“全部下载”。它的功能完全相同。
  • 如果您最近刚刚创建了 AFNs 证书,请删除有问题的配置文件并在本地系统上创建一个新配置文件来替换它,就像我现在的情况一样。
【解决方案2】:

@Djeeraj VS是正确的。 Cordova 添加了一些条件编译来删除不需要推送通知的应用程序的这一要求。

您可以按照 this answer 注释掉 Classes\AppDelegate.h 中的代码,但最好通过 UI 添加编译符号 DISABLE_PUSH_NOTIFICATIONS,这样您就可以继续受益于未来的 Cordova 升级。

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

原来这里的神奇词是“预处理器宏”。以下是它通过 UI 以图形方式完成的方式(注意这是在 XCode 6.1 中完成的方式):

希望这可以帮助其他处于相同情况的人。

【讨论】:

  • OP 正在尝试将推送通知功能添加到以前不支持推送的应用程序。这个答案似乎是关于删除错误添加的推送功能。
  • 不清楚为什么这个答案是关于这个问题的——这绝对不是对“我们在 App ID 中启用推送通知..关于丢失...的电子邮件”问题的答案。需要解释它的答案是什么,以及为什么会出现在这里。 (stackoverflow 会不会出现故障?)
【解决方案3】:

在我的情况下,我刚刚再次检查了项目属性中的“功能”页面,并在相应的 APNS 菜单中按下了“已解决的问题”。现在它必须看起来像这样

XCode 11. 处理按下 Capability 按钮 (+)

【讨论】:

  • 不够
  • @Tom ,在我的情况下是
  • 对不起,我的评论结尾没有发送:我还必须将自动生成的权利文件复制到项目的根目录。
  • @Tom ,因此,您可以编写自己的答案。如果您找到了其他解决方案,则无需对此答案投反对票。
  • @MohammadMirzakhani 添加了新截图
【解决方案4】:

我也有同样的警告,这就是我的解决方法。

首先,当您归档项目时,如果您没有看到 aps-environment 并且您的应用使用推送通知,那么您将收到问题中提到的警告。

修复步骤

1- 确保您的分发配置文件在 Apple 门户中有效。 - 如果不是,则重新生成它。 2- 如果您的分发配置文件有效,则在 XCode 中,导航到 Preferences,然后单击 View Details。此时,在 Provisioning Profiles 下,确保您没有无效的分发配置文件。如果有无效的,则右键单击并将它们移动到垃圾箱。如果您没有有效的,请从门户下载。 3- 转到 Build Settings -> Code Signing 并为所有内容选择分发配置文件。

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

【讨论】:

    【解决方案5】:

    就我而言,以下做法奏效了。 Xcode 9.2

    1. 禁用Automatically manage signing,出现在Build Target > Signing
    2. 手动导入配置文件。

    【讨论】:

      【解决方案6】:

      我有一个 Cordova 应用程序,我以前在该应用程序中收到过通知,但想将其从应用程序中删除。我尝试按照上述答案进行操作,但在上传构建时仍然遇到此问题。我意识到,我安装了一个插件,它使用了通知设置,并以某种方式为通知激活了一些设置。

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

      【讨论】:

        【解决方案7】:

        2021 Xcode 12.4

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

        1. 已禁用自动管理出现在Signing & Capabilities 中的签名
        2. 手动导入配置文件。

        【讨论】:

          猜你喜欢
          • 2015-11-27
          • 2015-11-25
          • 2015-11-28
          • 2015-11-21
          • 2016-07-09
          • 1970-01-01
          • 2019-08-05
          相关资源
          最近更新 更多