提交二进制文件进行 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 测试:“缺少推送通知权利”的主要内容,如果未能解决你的问题,请参考以下文章