提交二进制文件进行 Beta 测试:“缺少推送通知权利”

Posted

技术标签:

【中文标题】提交二进制文件进行 Beta 测试:“缺少推送通知权利”【英文标题】:Submitting a binary for beta testing: "Missing Push Notification Entitlement" 【发布时间】:2015-07-09 06:42:40 【问题描述】:

我目前正在使用Xcode 6.4。在我的Member Center 站点中,我拥有某个 App ID 的开发和生产 APNS 证书,并且此类 App ID 显示为两个环境都启用了推送通知。我还创建了几个配置文件:一个用于开发与该 App ID 相关联并在其启用的服务中推送通知,另一个用于临时分发相同的 App ID 以及启用推送通知的服务。

我可以在我的帐户中的 Xcode > 首选项 > 帐户 > 配置文件的详细信息列表中看到两个配置文件,但根据显示的权利图标,推送通知权利似乎没有出现在那里。

此外,当我归档应用程序并希望导出以进行临时部署时,Xcode 不允许我选择某个配置文件来签署应用程序,即使我已经在目标的构建设置 > 代码签名 > 配置中设置了它轮廓。该对话框中的应用还列出了已归档应用的 4 个权利,但没有一个是“aps”。

无论如何,我使用 Xcode 设置且不允许我更改的配置(XC Ad Hoc:*)导出了应用程序并将其发送到 iTunes Connect。然后我收到一封邮件说:

缺少推送通知权利 - 您的应用似乎包含用于注册 Apple 推送通知服务的 API,但应用签名的权利不包括“aps-environment”权利。如果您的应用使用 Apple 推送通知服务,请确保您的 App ID 在配置门户中启用推送通知,并在使用包含“aps-environment”权利的分发配置文件签署您的应用后重新提交。

会发生什么?在我的Member Center 中,我为推送通知启用了 App ID,并且我有相应的证书和配置文件。我刷新了配置文件两次,但没有结果。我会错过什么?我真的需要帮助解决这个问题。

提前致谢

编辑:如果我在文本编辑器中打开配置文件,它实际上包含以下行:

<key>aps-environment</key>
<string>production</string>

那么为什么在 Xcode > Preferences > Accounts 供应的图标中列出了这个权利?

编辑 2: 我应该在我的项目中添加一个 Entitlements.plist 文件吗?我在哪里可以找到与此相关的文档?

【问题讨论】:

仔细检查所有内容。我敢打赌,这很简单,因此很容易错过,因为你不会想到它。 @puzzler 我应该遵循“本地和远程通知编程指南”、“应用分发指南”还是其他? 这是我为了解配置而阅读的内容:roathe.wordpress.com/2011/04/05/… 这不是专门针对推送的,但由于它们是自动生成的,所以我对它们没有任何问题。 xcode 6 中的权利是从项目设置中管理的,所以我认为没有必要。 【参考方案1】:

过去两周我都在处理同样的问题。终于让它工作了。问题可能是 Xcode 6.4 中的错误。 Xcode 使用不同的配置文件来签署应用程序(通配符“XC:*”),该应用程序恰好没有“aps-environment”权利,即使我像你一样在“构建设置”中正确选择了我的配置文件。所以要解决这个问题,我必须通过 Shenzhen 构建和分发。

希望这对你也有帮助。

【讨论】:

解决方法是什么?你能详细说明一下吗?

以上是关于提交二进制文件进行 Beta 测试:“缺少推送通知权利”的主要内容,如果未能解决你的问题,请参考以下文章

Flutter iOS 应用提交问题警告:缺少推送通知权利

缺少推送通知权利?

iOS 和 Google Cloud Messaging:在一系列通知中缺少推送通知

缺少推送通知权利,我的应用程序不包含它

Test-Flight App beta测试时间限制

为什么itunesconnect认为我的应用正在注册推送通知?