更改为另一个苹果帐户后不会收到任何推送通知

Posted

技术标签:

【中文标题】更改为另一个苹果帐户后不会收到任何推送通知【英文标题】:Don't get any push notifications after changing to another apple account 【发布时间】:2017-08-30 12:06:30 【问题描述】:

我目前正在开发一个 ios 应用程序。几天前,我使用了一个作为个人注册的苹果帐户。为了接收通知,我使用 fastlane pem:https://github.com/fastlane/fastlane/tree/master/pem 创建了一个 pem 文件。该库为您的苹果帐户中的推送通知(类型:Apple Push Services)生成证书。这个 pem 文件被添加到我们的服务器并且推送通知有效,我收到了它们。

但是,我们更改了一个新的 Apple 帐户,该帐户是以个人身份注册的。我在 XCode 中使用了这个帐户,创建了一个新的应用程序 ID(之前使用了另一个捆绑包 ID)并提供了文件。我再次使用 Fastlane pem 创建了一个新的 pem 文件并更新了服务器上的 pem 文件。由于某种原因,我现在没有收到通知。当我们更改为第一个帐户并再次更新 pem 文件时,它会再次起作用。所以,我想这与新的苹果帐户有关。

有什么想法吗?谢谢!

【问题讨论】:

似乎是使用新应用程序 ID 生成 PEM。您必须生成所有新的 cer,如发行版,还必须开发新的 push cer。因为应用程序 ID 单独使用所有 cer。因此,请按照与新 cer 对旧应用 id 所做的相同步骤 我已经生成了所有的新文件。因为有了苹果账号,我就有了不同的开发者门户。这样我就确定有新的证书。问题是,我遵循了与旧应用程序相同的步骤。 我必须使用生产证书,对吧?使用“Apple Push Services”类型 【参考方案1】:

检查以下内容:

您的 Xcode 项目中是否启用了推送? 是否为您的开发者门户中的应用启用了推送,是否存储了证书以供推送? 证书是否有效? (开发者门户) 检查您在 AppDelegate 中获得的通知设备令牌(如果它仍然相同)。据我所知,是每个设备/应用程序组合创建的令牌。如果你的应用有另一个 id,iOS 会认为它是“另一个”应用,你会得到另一个令牌。 您使用新 ID 的应用程序是否请求远程通知?如果没有,您必须询问或查看 iOS 设置是否启用通知。

【讨论】:

在 XCode 中启用了推送(和复选标记)。在开发人员门户中启用了推送(当我单击应用程序 ID 时),并且有一个类型为“Apple Push Services”的证书。有效,您的意思是尚未达到到期日期?在这种情况下,它是有效的。设备令牌仍然相同。这就是为什么它很奇怪。一切看起来都很好。 是的,我是这个意思。 也许您应该从您的设备中删除您的应用程序并使用 XCode 重新安装它。然后应用程序必须请求通知许可,并且(我认为)将生成一个新的设备令牌。顺便说一句:我们说的是 iPhone 或 iPad,而不是模拟器?) 已经这样做了。服务器确实获得了正确的设备令牌并发送通知。我只是没有在我的手机上看到它们。此外,当我们切换回另一个帐户并更新 pem 文件时,它可以工作。 顺便说一句,具有新 id 的应用确实要求远程通知。【参考方案2】:

我终于解决了。我不知道究竟是什么导致了这个问题。我将苹果账户1上的应用程序转移到苹果账户2。因此,应用程序ID也被转移。我删除了之前在苹果账户 2 上使用的应用程序 ID。所以我使用了从苹果账户 1 转移的苹果账户 2 上的应用程序 ID。证书没有被转移,所以我像以前一样创建了它们并创建了pem 文件。这成功了。

【讨论】:

以上是关于更改为另一个苹果帐户后不会收到任何推送通知的主要内容,如果未能解决你的问题,请参考以下文章

苹果手机如何阻止app的推送通知?

推送通知问题应用程序转移

苹果推送通知不再到达

免费苹果帐户上的 ios 推送通知开发

Azure iOS 推送通知在生产模式下未收到?

apn 证书已过期,推送通知不再起作用