【问题标题】:Invalid entitlements error when adding push notifications添加推送通知时出现无效权利错误
【发布时间】:2017-11-08 19:33:47
【问题描述】:

我正在尝试按照本教程将推送通知添加到我的聊天应用程序:https://www.appcoda.com/firebase-push-notifications/

我已在“功能”中将推送通知切换为开启:

我的配置文件是为推送通知设置的:

我下载了,双击安装。

对于代码签名,在 Target -> 代码签名:

和项目 -> 代码签名:

权利文件:

当我运行项目时它成功了,然后说“可执行文件的签名无效权利”。完全错误The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).

感谢您的阅读。任何对此的帮助将不胜感激!

编辑:附加信息

使用 Xcode 8.2.1

  • 在开发者门户的我的应用 ID 中,游戏中心、应用内购买和推送通知已启用。据我了解,Game Center 和 IAP 是默认启用的。
  • 我尝试打开 GC 和 IAP,然后再次关闭。重启 Xcode,清理,构建。没有运气
  • 我尝试打开 GC 和 IAP,然后重新生成我的配置文件,安装它们,清理和构建。不走运。
  • 我的 Bundle ID 到处都匹配。

【问题讨论】:

  • 您是否将授权文件添加到项目中?
  • @AhmadF 我查看了该线程,并仔细检查了我的包标识符在所有地方(plist、Target、Project)都是相同的。
  • @PraveenKumar 是的,我包含了 Target -> Code Signing 的屏幕截图,那里有权利文件。它不在 Project -> Code Signing 中,但如果我在那里复制/粘贴它,我会遇到同样的问题
  • 尝试清理并重试

标签: ios xcode push-notification apple-push-notifications


【解决方案1】:

根据您提供的信息,您的应用已启用游戏中心、应用内购买和通知服务。

根据您的权利设置,您在 Xcode 中的应用没有启用 Game Center。 检查您的权利设置一次,然后重试,启用 Game Center 后应该没有任何问题。

【讨论】:

  • 我实际上根本不需要 Game Center,不知道它是如何进入其中的。但是我需要做什么?在功能中将“游戏中心”设为“开启”?
  • 是的,在您的 Xcode 权利中启用 Game Center 并尝试,它应该可以工作。它也对我有用。
  • Xcode 权利是什么意思?抱歉,这是我第一次处理权利。而且,我不需要对应用内购买做任何事情?我的应用也不需要它,但无论如何它在我的配置文件启用的服务中。
  • 只要启用您的应用在开发证书中的所有服务(在第二张图片中),在 Xcode 权利(在第一张图片中)中也使它们相同。
  • 无论如何,我继续将 Game Center 和应用内购买切换为开启,重新下载配置文件以确保,安装它们,重新启动 Xcode,清理,然后构建。仍然收到错误。
【解决方案2】:

从您的项目设置中,转到general,然后选中复选框Automatically manage signing,然后从下面的字段中选择您的团队!而已!

你可以参考下面的截图,

【讨论】:

  • 是的,我选择了那个选项。
  • 从构建设置更改配置文件为自动,并确保开发团队与您通常设置的相同!之后从capabilities 转向push notification 然后重新开始!
  • 配置文件设置为自动,如我问题中的屏幕截图所示。我曾尝试在功能中关闭推送通知,然后再次打开,然后重新下载我的配置文件并安装它。我仍然得到错误。
  • 确保您的证书没有过期!
  • 我今天早上刚刚创建了证书作为教程的一部分。在此之前我正在使用另一个证书(非推送通知)。但我将新的一键安装到钥匙串。如何确保我使用的是正确的证书?在这种情况下推一?
【解决方案3】:

删除权利文件中任何不是您添加的未知条目。

示例:如果不是您有意添加的,您可以从您的权利文件中删除 keychainAccessGroup 条目。

查看您的测试目标,测试和主要目标的团队标识符应该相同。 礼貌:https://stackoverflow.com/a/40464055/2959346

【讨论】:

  • 我认为我需要“keychainAccessGroup” - 我已经检查了该功能,因为 Firebase 需要它才能正常工作。
  • 另外,我的问题中有我的权利文件的屏幕截图 - 我对权利文件一无所知,但是在实施推送通知后它应该是什么样子?那里没有关于通知的内容。
  • 在您的权利文件中,“APS 环境”(Apple 推送服务)键告诉您嵌入在此处的推送通知。对于钥匙串访问组,请参阅此信息bencoding.com/2016/12/31/…
  • 我也在更新我的答案,我发现了一些关于堆栈溢出的有用帖子。请也尝试一下。
猜你喜欢
  • 2019-08-30
  • 1970-01-01
  • 2018-06-15
  • 2022-09-30
  • 2015-11-28
  • 2015-11-21
  • 2015-03-29
相关资源
最近更新 更多