Swift:没有调用 didRegisterForRemoteNotificationsWithDeviceToken
Posted
技术标签:
【中文标题】Swift:没有调用 didRegisterForRemoteNotificationsWithDeviceToken【英文标题】:Swift: didRegisterForRemoteNotificationsWithDeviceToken not called 【发布时间】:2020-06-07 08:22:18 【问题描述】:我有一个包含 3 个目标 dev、staging 和 prod 的应用程序。
为目标产品调用了didRegisterForRemoteNotificationsWithDeviceToken
函数,我不明白为什么没有调用其他目标
代码:
UNUserNotificationCenter.current().requestAuthorization(options: [.badge, .sound, .alert]) granted, _ in
guard granted else return
DispatchQueue.main.async application.registerForRemoteNotifications()
但是,所有目标都启用了推送通知
【问题讨论】:
【参考方案1】:可能存在导致 APN 注册失败的配置问题。
尝试打印出您在didFailToRegisterForRemoteNotificationsWithError
中获得的内容,如果您使用的是模拟器,它可能会输入此方法而不是didRegisterForRemoteNotificationsWithDeviceToken
。
确保您的 Provisioning Profile 包含 aps-environment 条目
确保您在配置文件中设置了唯一的应用程序标识符(没有任何“*”的字符串)。您还应该在 Info.plist 中将此确切标识符用作“捆绑标识符”
也许您在初始安装后拒绝了推送功能 - 在这种情况下,您将再也看不到应用内推送警报,必须再次在设置应用中启用推送。
尝试其他设备。
【讨论】:
我在真机上测试,允许通知,不调用didFailToRegisterForRemoteNotificationsWithError
@MickaelBelhassen 您可以编辑您的问题并包括您尝试过的所有步骤吗?有时当我写下我所做的事情时,我意识到我错过了一些东西。您也可以尝试删除应用程序并重新启动手机吗?这可能不是原因,但它可以帮助我们准确地了解您用您自己的话来说做了什么。话虽如此,我认为检查配置文件是关键,因为您的目标具有不同的 bundleID 和可能的 AppID,因此它们的功能可能不同以上是关于Swift:没有调用 didRegisterForRemoteNotificationsWithDeviceToken的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 没有按时调用intrinsicContentSize
Swift & StompClientLib : stompClient(_) 函数没有被调用
在iOS上没有调用sceneDidEnterBackground,swift