gpt4 book ai didi

ios - AWS Mobile HUD AWS SNS pushManagerDidRegister 但未创建端点

转载 作者:IT王子 更新时间:2023-10-29 05:27:34 26 4
gpt4 key购买 nike

我将 AWS Mobile HUD 与 AWS SNS 结合使用,但遇到了问题。

什么有效/已经完成

  • 成功创建p12通用证书
  • 通过 Mobile HUD 成功创建的 AWS SNS 资源
  • Mobile HUD 成功创建主题
  • 将代码集成到项目中
  • 集成 plist

以下代码应使用 AWS SNS 注册应用程序(设备):

pushManager = AWSPushManager(forKey: ServiceKey)
pushManager?.delegate = self
pushManager?.registerForPushNotifications()

并且 - 足够大的 func pushManagerDidRegister(_ pushManager: AWSPushManager) 被调用,表明成功。我的 func pushManagerDidRegister(_ pushManager: AWSPushManager) 看起来像 fo

func pushManagerDidRegister(_ pushManager: AWSPushManager) {
print("Successfully enabled Push Notifications on platform: \(pushManager.platformARN)")
// Subscribe the first topic among the configured topics (all-device topic)
if let defaultSubscribeTopic = pushManager.topicARNs?.first {
let topic = pushManager.topic(forTopicARN: defaultSubscribeTopic)
topic.subscribe()
}
}

日志输出:

Successfully enabled Push Notifications on platform: Optional("arn:aws:sns:eu-central-1:00000000:app/APNS/appname_MOBILEHUD_12345678")

但是:在 AWS SNS 资源上,此应用程序/platformARN 中未创建端点

有趣的事实(可能是原因)

  • 构建配置是 DEBUG
  • 记录的 platformARN 是 RELEASE 而不是 DEBUG

edit:在尝试了不同的 swift 编译器标志后,我成功地设置了正确的环境。现在我记录到在沙盒环境中注册成功。但是:仍然没有在 AWS SNS 上创建端点

关于我如何继续的任何想法?我现在尝试了 2 天,包括重新认证、重建 AWS、无休止的日志记录;)

最佳答案

所以我在文档和他们的 github 中查找了这个问题。我注意到他们正在使用你没有的 AWSSNSCreatePlatformEndpointInput,你还必须从 func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) 获取设备 token ,并且注册它。

总之应该是这样的

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {

let deviceTokenString = "\(deviceToken)".stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString:"<>"))
.stringByReplacingOccurrencesOfString(" ", withString: "")
print("deviceTokenString: \(deviceTokenString)")
NSUserDefaults.standardUserDefaults().setObject(deviceTokenString, forKey: "deviceToken")
mainViewController()?.displayDeviceInfo()

let sns = AWSSNS.defaultSNS()
let request = AWSSNSCreatePlatformEndpointInput()
request.token = deviceTokenString
request.platformApplicationArn = SNSPlatformApplicationArn
sns.createPlatformEndpoint(request).continueWith(executor: AWSExecutor.mainThreadExecutor(), block: { (task: AWSTask!) -> AnyObject! in
if task.error != nil {
print("Error: \(task.error)")
} else {
let createEndpointResponse = task.result as! AWSSNSCreateEndpointResponse
print("endpointArn: \(createEndpointResponse.endpointArn)")
NSUserDefaults.standardUserDefaults().setObject(createEndpointResponse.endpointArn, forKey: "endpointArn")
self.mainViewController()?.displayDeviceInfo()
}

return nil
})
}

请告诉我发生了什么事祝你好运

关于ios - AWS Mobile HUD AWS SNS pushManagerDidRegister 但未创建端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44290096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com