缺少推送通知权利

mir*_*rvo 120 profile apple-push-notifications ios

我有一个提交的应用程序,当它被拒绝,我得到了消息

缺少推送通知权利 - 您的应用似乎向Apple推送通知服务注册,但应用签名的权利不包括"aps-environment"权利.如果您的应用使用Apple推送通知服务,请确保在配置门户中为推送通知启用了您的应用ID,并在使用包含"aps-environment"权利的配置配置文件对应用进行签名后重新提交.

我检查了我的ad-hoc provisiong,然后我找到了aps-environment和production,但是当我打开我的发行版配置时,我找不到这样的.

这是导致此错误消息和苹果拒绝的原因,我该如何解决?

tom*_*tom 77

是的,这是App Store拒绝的原因.如果您的ad-hoc配置文件具有aps-environment密钥,则表示您的应用程序已在Apple Provisioning Portal中正确配置.您需要做的就是删除本地计算机上的App Store分发配置文件,然后从Provisioning Portal重新下载并安装分发配置文件.这个新的应该包含aps-environment密钥.

  • 不,不需要新的开发人员证书.当您为推送通知启用分发时(由于您的ad hoc配置文件具有aps-environment密钥,您必须在某些时候完成此操作),iTunes Provisioning Portal会生成包含aps-environment密钥的新应用商店分发配置文件.您可能刚刚下载并安装了最新版本. (2认同)

Min*_*wzy 42

第一个应用ID

确保在生产方面启用ID推送通知

如图所示

在此输入图像描述

第二证书

从生产部分创建两个带有您ID的证书(启用推送通知)

App Store和Ad Hoc证书

Apple推送通知服务SSL(沙盒)证书

在此输入图像描述

第三个配置文件

从分发部分创建带有您ID的App Store配置文件

最后

在上传垃圾箱时,您必须检查所使用的配置文件,并拥有许多权利

在此输入图像描述

这种情况导致这个问题希望这对你有所帮助

  • 这就是我所缺少的。我必须使用带有推送通知的应用程序 ID 在苹果开发者网站中创建一个新的配置文件。使用新的配置文件,最终将 aps-environment 权利添加到我的应用程序中。谢谢你! (2认同)

Vai*_*den 39

在XCode 8中,您需要在目标上的Capabilities选项卡中启用push,除了启用条款和证书上的所有内容: Xcode 8"应用程序签名中缺少aps-environment权利"

我的博客文章在这里发布.

  • 这是经典的Apple.提交构建版本两小时后,他们发送了一条关于我早已解决的问题的错误消息(在开发门户网站中启用了推送通知应用程序服务),并通过指向404的链接进行了解释.然后结果是真实的问题是他们在升级到他们软件的新版本时没有迁移我的设置(我被锁定).啊. (8认同)
  • 同样的故事在这里 我们几乎将错误消息视为Apple错误. (3认同)

Sim*_*ide 22

我得到此消息的原因不同 - 我通过Xcode提交了一个应用程序,而没有首先专门为该应用程序创建App Store分发配置文件.我相信如果您安装了Xcode,Xcode会自动使用通配符App Store配置文件.但是应用程序使用推送通知需要自己的配置文件.

修复方法是为应用程序创建新的App Store Distribution配置文件.然后下载它,将其拖到Xcode上,并修改项目Build Settings> Code Signing> Release以使用新的配置文件.


Ian*_*Ian 11

继@Vaiden给出的答案之后,在Xcode 8中,您可以通过选择目标并单击"修复问题"来解决此问题.当然,您仍然需要在Apple Developer门户中设置推送通知(您可以使用新的"自动管理签名"选项简化流程,这样可以省去下载配置文件的麻烦).

修复我的选项


Sha*_*han 11

我遇到了同样的问题,我的解决方案是从“目标”->“功能”添加推送通知权利。


Ada*_*eld 8

对于遇到此问题且实际在其应用中使用推送通知的人:

我们的推送证书最近即将到期,因此我们以Apple概述的标准方式创建了新的dev/prod推送证书(我不会在此详细介绍这些证书,更新时有很多关于它的信息)你的推进证书再使用一年).

但是,在这样做之后,这个问题出现了问题.无论我们做了什么,我们在提交应用程序后都会收到Apple发来的电子邮件.当我们在Apple会员中心检查我们的分配供应配置文件的设置时,一切看起来都很好(推送已为我们的prod/dev的App ID启用,我们的分发配置文件仍然连接到此App ID,我们确实刚刚创建标准做法是新推出的另一年的证书.

最后,这就是最终为我解决的问题:

  1. 创建一个新的分发配置文件,指向您的应用程序ID(保持当前的一个)
  2. 在Xcode中,通过设置>帐户>选择您的帐户>详细信息>单击刷新图标来刷新您的配置文件
  3. 手动为您的应用创建权利plist文件:
    • 文件菜单>新文件...
    • 选择iOS>资源>属性列表
    • 将新文件命名为"foo.entitlements"(通常,"foo"是目标名称)
    • 单击"权利文件"旁边的(+)以添加顶级项目(由于文件扩展名,属性列表编辑器将使用正确的模式)
  4. 确保此权利文件正在目标的构建设置中使用(目标>构建设置>搜索"权利",在CODE_SIGN_ENTITLEMENTS中设置您刚才制作的权利文件的路径)
  5. 确保将Target中的配置文件/代码签名标识正确设置为适当的分发配置文件/签名标识(这应该是显而易见的)
  6. 我不是100%确定这是否会影响它(它不应该因为Target设置覆盖项目设置,但我仍然这样做),确保您的Project的配置文件/签名身份与Target的匹配
  7. 在您创建的权利文件中,右键单击空文件并选择"显示原始密钥/值"
  8. 在权限文件中添加一个名为"aps-environment"的新条目,并将其值设置为"production"
  9. 一个关键的注意事项,如果您之前使用的是keychain-access-groups权利,那么您也需要在此处添加该密钥,因为出于某种原因,在手动执行此操作时它已被清除.确保该值与之前版本中使用的值相同(您可以通过在管理器中查找以前的版本来找到该值,尝试提交到应用商店,选择您的团队,然后在提交应用之前点击旁边的箭头"(X)权利"字符串,用于扩展权利并查看keychain-access-group权利的值.
  10. 存档您的应用程序并尝试将其提交到最终的"提交"按钮.您应该会看到此应用程序现在使用您在成员中心创建的新配置文件构建.现在取消这个.
  11. 返回Apple成员中心并删除您在步骤1中创建的新配置文件.
  12. 返回Xcode,重复步骤2,再次刷新配置文件列表.
  13. 现在再次归档您的应用程序,您应该看到应用程序是使用您想要使用的旧分发配置文件构建的,并且正确拥有了aps-environment权利.提交,你就完成了.

我知道这不应该像应该有的那么详细,因为它应该有截图,我会尝试用截图更新它,但是我现在正处于时间紧缩状态并希望获得我在那里做了什么.我很可能有一些或大部分步骤都没有必要,我把它们放在这里因为我做了它们而且它们可能导致了最终的解决方案.


Vis*_*s p 5

在iOS Provisioning Portal的developer.apple.com上检查您的应用程序ID是否已启用推送(如果尚未启用),请为您的应用程序ID配置您的推送SSL证书,然后下载并重新安装在钥匙串中,然后再下载您的分发配置文件在您的Xcode库中


mog*_*oli 5

这就是为我解决的问题。(我已经尝试过打开/关闭功能、重新创建配置文件等)。

“构建设置”选项卡中的“代码签名权利”中,我的.entitlements文件并未链接到所有部分。将其添加到 Any SDK 部分后,错误就解决了。

在此输入图像描述


小智 5

修复想法 嘿伙计们,我制作了一个应用程序,没有使用任何推送通知功能,但我仍然收到一封电子邮件。在检查了我用来在苹果开发者门户中的苹果商店连接中创建应用程序的捆绑标识符的证书、ID 和配置文件后,我意识到推送通知已打开。

你需要做的是:

转到苹果开发者登录站点,您可以在其中管理您的证书 2. 选择右侧的“证书、ID 和配置文件”选项卡 3. 现在选择“标识符” 4. 然后从右侧列表中选择捆绑 ID 5. 现在向下滚动,直到看到推送通知 6. 将其关闭 7. 存档您的构建并将其重新上传到 Apple Store Connect

希望能帮助到你!