推送通知对于Ad Hoc版本有效,但是从苹果商店下载的版本无效。

12

我的应用已经通过了Apple Store的审核。我在iPhone上下载并安装了它,但似乎推送通知无法正常工作!

使用 adHoc 配置文件,我在生产环境中成功测试了推送通知,并没有任何问题。当我提交到Apple时,唯一不同的是我使用了应用商店分发配置文件。

应用程序从未要求我(或任何其他已下载的用户)是否想要接收推送通知。因此,手机从未与我的服务器通信以发送推送令牌(因为假定从未调用 application:didRegisterForRemoteNotificationsWithDeviceToken:)。此外,在设置应用中没有看到该应用的通知设置。

我可能做错了什么??

编辑:在应用等待审核期间,我遇到了一些生成生产推送证书的问题。这会有影响吗?

提交到Apple Store后生成APN SSL证书出现问题

2个回答

21

请确保您已创建生产应用程序ID,并已启用其推送通知。然后为该应用程序创建预配配置文件。下载并使用文本编辑器打开文件,必须确保配置文件包含以下密钥和值:

aps-environment production

如果没有,请确保在生成您的预配配置文件之前,您确实已将应用程序ID启用为生产推送。

构建完成后,您可以检查最终构建以验证其是否具有aps-environment授权(在“内部要求”下搜索aps-environment签名授权):

codesign -dvvvv --entitlements - MyCoolApp.app


1
哦哇谢谢!是的,就是这个问题。我检查了原始分发配置文件,那个密钥不在那里。我猜你执行这些步骤的顺序真的很重要。 - MikeQ
很棒的解决方案。在最终编译的应用程序中能够验证aps是否已设置,这非常令人放心。 - scottbates22

3

您是否在 ad-hoc 和 distribution 的 mobileprovision 文件中使用了相同的应用程序 ID?它需要是完整的标识符,而不仅仅是部分。


完全是指非通配符ID吗?如果是的话,没错,它就是一个完全不同的应用程序ID。我实际上是使用以“.adHoc”结尾的ID测试的Ad Hoc应用程序,并且运行良好 - 然后我使用了以“.release”结尾的ID提交了该应用程序。这是唯一的变化。一旦我发现了这个问题,我就为“.release”应用程序ID制作了一个Ad Hoc配置文件,并在我的手机上安装了它 - 推送通知就正常工作了! - MikeQ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接