我有一个应该启用推送通知的应用程序,但由于某种原因没有启用它们。我见过其他人下载并安装该应用程序,它甚至不提示他们发送推送通知的权限。正如预期的那样,此应用不会出现在他们的“设置”>“通知”中。
但是,在我的 iPad 上,我能够从这个应用程序接收推送通知,它确实显示在我的设置 > 通知中。我删除并重新安装了该应用程序,以确保我拥有与其他人一样的东西(而不是开发版本),并且我仍然能够收到通知。
现在,这个应用程序是为一个客户编写的,他向我发送了所有配置文件(开发、临时、分发)以及能够发送推送通知所需的文件,所以我不能确定所有的事情已正确创建。
我现在的理论是:
- 我收到的临时配置文件是“正确创建的”(即在配置门户中为应用程序的 App ID 设置 APN 后生成)
- 我收到的分发配置文件是在为此应用设置 APN 之前生成的(因此,它不是“启用推送”)
- 我能够在我的设备上接收推送通知的原因是在开发过程中我安装了一个临时版本,它提示我获得接收推送通知的权限,即使我已经删除了这个临时版本并从商店下载了该版本,设备已经“缓存”了我愿意接收通知的事实并且不再提示我。我检查过其他应用程序,确实,在我删除并重新安装它们之后,它们不会再次提示我获得接收推送通知的权限。
所以我的问题是:
- 这个理论有意义吗?
- 如果是,这意味着我必须要求客户生成新的分发配置文件。 我如何验证此配置文件是否“启用推送”?(即考虑到我不能只安装使用它编译的应用程序)
最佳答案
好吧,我可能找到了一种方法来验证配置文件是否已启用推送。
如果我将 .mobileprovision 文件作为文本文件打开,那里有一些 XML(显然是一个 plist),我猜测分发配置文件应该有这个:
<key>aps-environment</key>
<string>production</string>
事实上,临时配置文件有这个而分发配置文件没有,所以......我猜这就是问题所在。
不过,任何反馈都会有所帮助:)
关于iphone - 如何检查 iOS 分发配置文件是否启用了推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8747539/