推送通知不起作用Xcode 11.3.1

ip

这是我的情况:我生成了生产推送通知证书。在Apple Developer Portal上,证书显示为:

我有一份Apple Dev证书和一份Apple发行证书:

我创建了一个存档,并使用Xcode 11.3.1通过Ad Hoc分发了我的应用程序。以下是临时摘要:

在此处输入图片说明

我启用了推送通知,但是它们不起作用。当应用程序处于后台时,我无法收到通知。当我在Xcode 10.3中使用iPhone分发证书时,通知使用相同的代码。我想念什么?谢谢!!

Munzareen Atique

这是集成推送通知的过程,请逐步执行:

首次登录到您的Apple开发者帐户->标识符->单击您的应用程序标识符并启用推送通知。启用通知后,它将询问您CertificateSigningRequest.certSigningRequest,您需要打开钥匙串访问并打开在此处输入图片说明单击证书助手->从证书颁发机构请求证书

创建该证书后,您需要在Apple帐户中添加该证书。并从那里下载development.cer和aps.cer证书。

下载这些证书后,只需单击两个证书,这将打开您的钥匙串访问。现在,左键单击那些证书并导出.p12证书,这将要求您为该证书生成密码。

现在打开您的Firebase帐户,然后转到设置->云消息传递->在此处添加production.p12和development.p12证书。

现在回到xcode转到应用程序目标->登录和功能->添加推送通知并添加后台模式,检查后台获取和远程通知。

现在进入代码,添加Pod并安装

pod 'Firebase/Analytics' 
pod 'Firebase/Messaging'

打开您的AppDelegate导入这些

import FirebaseAnalytics
import Firebase
import FirebaseMessaging

添加代表 MessagingDelegate

发起 let gcmMessageIDKey = "gcm.message_id"

didFinishLaunchingWithOptions方法中添加这些

       FirebaseApp.configure()

        Messaging.messaging().delegate = self
        //Added push notification

        if #available(iOS 10.0, *) {
                 // For iOS 10 display notification (sent via APNS)
             UNUserNotificationCenter.current().delegate = self

             let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
             UNUserNotificationCenter.current().requestAuthorization(
                 options: authOptions,
                 completionHandler: {_, _ in })
         } else {
             let settings: UIUserNotificationSettings =
                 UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
             application.registerUserNotificationSettings(settings)
         }

         application.registerForRemoteNotifications()

         Messaging.messaging().isAutoInitEnabled = true

添加后,在应用程序委托中添加以下方法,您就可以接收推送通知了:

//Push Notifications

   func application(application: UIApplication,
                       didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
          Messaging.messaging().apnsToken = deviceToken as Data
      }
      func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {

          InstanceID.instanceID().instanceID { (result, error) in
              if let error = error {
                  print("Error fetching remote instance ID: \(error)")
              } else if let result = result {
                  print("Remote instance ID token: \(result.token)")
                  //  self.instanceIDTokenMessage.text  = "Remote InstanceID token: \(result.token)"
              }
          }

          print(userInfo)
      }

      func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
                       fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {

          if let messageID = userInfo[gcmMessageIDKey] {
              print("Message ID: \(messageID)")
          }

          print(userInfo)

          completionHandler(UIBackgroundFetchResult.newData)
      }

    func userNotificationCenter(_ center: UNUserNotificationCenter,
                                   willPresent notification: UNNotification,
                                   withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
           let userInfo = notification.request.content.userInfo

           if let messageID = userInfo[gcmMessageIDKey] {
               print("Message ID: \(messageID)")
           }

           completionHandler([])
       }

       func userNotificationCenter(_ center: UNUserNotificationCenter,
                                   didReceive response: UNNotificationResponse,
                                   withCompletionHandler completionHandler: @escaping () -> Void) {
           let userInfo = response.notification.request.content.userInfo

           if let messageID = userInfo[gcmMessageIDKey] {
               print("Message ID: \(messageID)")
           }

           print(userInfo)

           completionHandler()
       }


       func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
           print("Firebase registration token: \(fcmToken)")
           let dataDict:[String: String] = ["token": fcmToken]


           NotificationCenter.default.post(name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict)

           UserDefaults.standard.set(fcmToken, forKey: "FCMToken")
           UserDefaults.standard.synchronize()

       }

       func messaging(_ messaging: Messaging, did remoteMessage: MessagingRemoteMessage) {
           print("Received data message: \(remoteMessage.appData)")
       }

       func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
           print("Received data message: \(remoteMessage.appData)")
       }

       func application(_ application: UIApplication,
                        didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
           Messaging.messaging().apnsToken = deviceToken as Data

       }

       func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
           print("Firebase registration token: \(fcmToken)")

           let dataDict:[String: String] = ["token": fcmToken]



       }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

swift 3 - 推送通知的本地化不起作用

来自分类Dev

bootstrap 3按钮在IE11中不起作用

来自分类Dev

解析GCM推送通知在Android 6.0 Marshmallow Developer Preview 3上不起作用

来自分类Dev

Firebase 在 Xcode 8.3 上发布 iOS 10.3 Swift 3 FCM 通知不起作用

来自分类Dev

Arch linux:通知在 i3wm 中不起作用 - dunst:关键:无法打开 X11 显示器

来自分类Dev

用于条件的Swift Xcode 11断点不起作用

来自分类Dev

D3D11_BUFFER_DESC字节宽度“不起作用”

来自分类Dev

CSS3动画在IE11中不起作用

来自分类Dev

谷歌地图v3的ngmap在Internet Explorer 11上不起作用

来自分类Dev

使用 translate3d 的 CSS 加载器在 Internet Explorer 11 中不起作用

来自分类Dev

当“内容可用”时,iOS远程通知不起作用:1

来自分类Dev

当“内容可用”时,iOS远程通知不起作用:1

来自分类Dev

NSKeyedArchiver在Swift 3(XCode 8)中不起作用

来自分类Dev

NSKeyedArchiver在Swift 3(XCode 8)中不起作用

来自分类Dev

使用3D变换翻转在IE11中不起作用(我的有所不同)

来自分类Dev

为什么ng-click在case-1中不起作用,而在case-3中起作用?

来自分类Dev

为什么ng-click在case-1中不起作用,而在case-3中起作用?

来自分类Dev

OL3与ac11中的IE11在Web#浏览器中控制鼠标单击事件不起作用

来自分类Dev

Zend 1 3D派对NameSpaces自动加载不起作用

来自分类Dev

为什么6 /长度[1、2、3]在Haskell中不起作用

来自分类Dev

1个功能中的3个指针-计算器不起作用

来自分类Dev

控件与“ 1、2、3”数字结合使用不起作用

来自分类Dev

1 2 3 4 7 8 9 p和退格键不起作用

来自分类Dev

Zend 1 3D派对NameSpaces自动加载不起作用

来自分类Dev

循环(1 + x + x ** 2 + x ** 3 + x ** 4 .... n)不起作用

来自分类Dev

将 RxPy 从 1.x 升级到 3.x 后订阅不起作用

来自分类Dev

css在IE 11中不起作用

来自分类Dev

Braintree推送通知不起作用

来自分类Dev

CloudKit推送通知订阅不起作用

Related 相关文章

  1. 1

    swift 3 - 推送通知的本地化不起作用

  2. 2

    bootstrap 3按钮在IE11中不起作用

  3. 3

    解析GCM推送通知在Android 6.0 Marshmallow Developer Preview 3上不起作用

  4. 4

    Firebase 在 Xcode 8.3 上发布 iOS 10.3 Swift 3 FCM 通知不起作用

  5. 5

    Arch linux:通知在 i3wm 中不起作用 - dunst:关键:无法打开 X11 显示器

  6. 6

    用于条件的Swift Xcode 11断点不起作用

  7. 7

    D3D11_BUFFER_DESC字节宽度“不起作用”

  8. 8

    CSS3动画在IE11中不起作用

  9. 9

    谷歌地图v3的ngmap在Internet Explorer 11上不起作用

  10. 10

    使用 translate3d 的 CSS 加载器在 Internet Explorer 11 中不起作用

  11. 11

    当“内容可用”时,iOS远程通知不起作用:1

  12. 12

    当“内容可用”时,iOS远程通知不起作用:1

  13. 13

    NSKeyedArchiver在Swift 3(XCode 8)中不起作用

  14. 14

    NSKeyedArchiver在Swift 3(XCode 8)中不起作用

  15. 15

    使用3D变换翻转在IE11中不起作用(我的有所不同)

  16. 16

    为什么ng-click在case-1中不起作用,而在case-3中起作用?

  17. 17

    为什么ng-click在case-1中不起作用,而在case-3中起作用?

  18. 18

    OL3与ac11中的IE11在Web#浏览器中控制鼠标单击事件不起作用

  19. 19

    Zend 1 3D派对NameSpaces自动加载不起作用

  20. 20

    为什么6 /长度[1、2、3]在Haskell中不起作用

  21. 21

    1个功能中的3个指针-计算器不起作用

  22. 22

    控件与“ 1、2、3”数字结合使用不起作用

  23. 23

    1 2 3 4 7 8 9 p和退格键不起作用

  24. 24

    Zend 1 3D派对NameSpaces自动加载不起作用

  25. 25

    循环(1 + x + x ** 2 + x ** 3 + x ** 4 .... n)不起作用

  26. 26

    将 RxPy 从 1.x 升级到 3.x 后订阅不起作用

  27. 27

    css在IE 11中不起作用

  28. 28

    Braintree推送通知不起作用

  29. 29

    CloudKit推送通知订阅不起作用

热门标签

归档