Ошибка при интеграции уведомления SNS в iOS - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь интегрировать уведомление Amazon SNS pu sh в мое приложение, я следую этим урокам,

https://medium.com/@thabodavidnyakalloklass/ios-push-with-amazons-aws-simple-notifications-service-sns-and-swift-made-easy-51d6c79bc206

Но когда я запускаю приложение, приложение получает cra sh с эта ошибка в консоли,

dyld: Library not loaded: @rpath/AWSCognito.framework/AWSCognito

Referenced from: /private/var/containers/Bundle/Application/4235F4D7-2F8C-4F5F-A4CE-8F51F2CDB6B1/Chiragh.app/Chiragh
Reason: image not found
Message from debugger: Terminated due to signal 6

Я пытаюсь использовать этот код в классе делегатов приложения,

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        /// Attach the device token to the user defaults
        var token = ""
        for i in 0..<deviceToken.count {
            token = token + String(format: "%02.2hhx", arguments: [deviceToken[i]])
        }

        print(token)

        UserDefaults.standard.set(token, forKey: "deviceTokenForSNS")

        let sns = AWSSNS.default()
        let request = AWSSNSCreatePlatformEndpointInput()
        request?.token = token
        request?.platformApplicationArn = SNSPlatformApplicationArn
        sns.createPlatformEndpoint(request!).continueWith(executor: AWSExecutor.mainThread(), block: { (task: AWSTask!) -> AnyObject! in
        if task.error != nil {
            self.print("Error: \(String(describing: task.error))")
        } else {
        let createEndpointResponse = task.result! as AWSSNSCreateEndpointResponse
        if let endpointArnForSNS = createEndpointResponse.endpointArn {
            self.print("endpointArn: \(endpointArnForSNS)")
        UserDefaults.standard.set(endpointArnForSNS, forKey: "endpointArnForSNS")
        }
        }
        return nil
        })
}

func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {

    print(error.localizedDescription)
}


func registerForPushNotifications(application: UIApplication) {
        /// The notifications settings
        if #available(iOS 10.0, *) {
            UNUserNotificationCenter.current().delegate = self
            UNUserNotificationCenter.current().requestAuthorization(options: [.badge, .sound, .alert], completionHandler: {(granted, error) in
                if (granted)
                {
                    UIApplication.shared.registerForRemoteNotifications()
                }
                else{
                    //Do stuff if unsuccessful...
                }
            })

        } else {
            let settings = UIUserNotificationSettings(types: [UIUserNotificationType.alert, UIUserNotificationType.badge, UIUserNotificationType.sound], categories: nil)
            application.registerUserNotificationSettings(settings)
            application.registerForRemoteNotifications()

    }
}


// Called when a notification is delivered to a foreground app.
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        print("User Info = ",notification.request.content.userInfo)
        completionHandler([.alert, .badge, .sound])
}

// Called to let your app know which action was selected by the user for a given notification.
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
        print("User Info = ",response.notification.request.content.userInfo)

        completionHandler()

}

Почему отображается это сообщение об ошибке? Чего не хватает в этом, я встроил файлы инфраструктуры также в моем проекте.

...