我有一个应用程序,原本应该启用推送通知,但由于某种原因没有启用。我看到其他人下载并安装该应用程序,它甚至不提示他们允许发送推送通知的权限。预期地,此应用程序不会出现在他们的“设置”>“通知”中。
然而,在我的iPad上,我能够从这个应用程序接收推送通知,并且它确实出现在我的“设置”>“通知”中。我已经删除并重新安装了应用程序,以确保我拥有每个人都有的相同版本(并非开发版本),但我仍然能够接收通知。
现在,这个应用程序是为一个客户编写的,客户向我发送了所有的配置文件(dev、adhoc、distribution),以及发送推送通知所需的文件,因此我无法确定是否一切都正确创建了。
我目前的理论是:
- 我收到的adhoc配置文件是"正确创建的"(即在Provisioning Portal中设置了App ID的APNs后生成)
- 我收到的distribution配置文件是在设置APNs之前生成的(因此,它没有启用"推送通知")
- 我能够在设备上接收到推送通知的原因是,在开发过程中我安装了adhoc版本,这提示我允许接收推送通知的权限,即使我已经删除了adhoc版本并下载了商店版本,设备也已经"缓存"了我愿意接收通知的事实,不再提示我。我已经检查了其他应用程序,实际上,在我删除并重新安装它们之后,它们不会再次提示我是否允许接收推送通知的权限。
所以我的问题是:
- 这个理论有道理吗?
- 如果有,这意味着我需要要求客户生成一个新的distribution配置文件。如何验证此配置文件已启用"推送通知"(即考虑到我不能只安装使用它编译的应用程序)?
security cms -D -i /path/to/AppStoreProfile.mobileprovision
,然后查找相同的aps-environment密钥。 - Tal