为啥启用推送的权利文件只包含开发密钥?

Posted

技术标签:

【中文标题】为啥启用推送的权利文件只包含开发密钥?【英文标题】:Why does an entitlements file with push enabled only contain a development key?为什么启用推送的权利文件只包含开发密钥? 【发布时间】:2017-03-26 15:51:09 【问题描述】:

为应用 ID 启用推送通知时,必须同时为开发和生产启用它。

但是,权利文件仅包含 APS 密钥的“开发”值,而不是“开发”和“生产”值:

如果制作了生产存档,然后检查 .ipa 中的权利文件,它包含 apn 键的“开发”值,而不是“生产”值。 但是,如果此存档随后被导出用于临时分发,则生成的 .ipa 中的权利文件仍然是“开发”。 这是为什么呢?

【问题讨论】:

存档时,导出AppStore或上传时会自动选择正确的环境。 我正在创建一个生产 .ipa via 存档。 但是您使用的是 AppStore 证书还是 adhoc? adhoc,但 adhoc 的全部意义在于在 App Store 之前启用测试。因此,大概它肯定会产生相同的结果。 ***.com/questions/12447025/… 【参考方案1】:

不要查看 Xcode 项目中的权利文件。不要查看存档中的权利文件。唯一重要的是您在从存档导出以制作临时文件时获得的权利文件。它将具有正确的权利。

【讨论】:

它是一样的。我创建了一个实现,然后在生成的 .xcarchive 文件中查看了生成的 .ipa ,其中 aps-environment 设置为开发。接下来我选择导出存档并选择临时分发。然后我查看了该导出产生的 .ipa,其中 aps 环境也设置为开发。(在方案中,存档设置为发布,它没有被意外设置为调试) 将临时分布式应用程序加载到您自己的设备上。有用吗?

以上是关于为啥启用推送的权利文件只包含开发密钥?的主要内容,如果未能解决你的问题,请参考以下文章

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

缺少推送通知权利?

iPhone:出现“权利不匹配”的问题

您的应用似乎包含用于注册 Apple 推送通知服务的 API,但应用签名的权利不包括

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

权利不匹配:配置文件问题