参数无效:令牌原因:iOS 设备令牌不得超过 400 个十六进制字符

2022-09-04 04:04:12

我正在尝试从控制台创建平台终端节点。以下是我从中收到的设备令牌:amazon snsFCM/APNs

fUG5dIcN_pA:APA91bEciRwWuvTIezAKcJ5y1xz5z6BygE3YJkywdCGCFJD93NTfjARwPRommwgsfvVo2iH_qZWT7D2Lxnc69uanato1UUq-nLl5R1L0qF4exT7zjM9Wdy9Evs6h-EOBtIVv7Vv8bPE1

我收到一个错误:iOS设备令牌不得超过400个十六进制字符,看起来APNs以字符串格式发送令牌,亚马逊期望它以十六进制字符显示。


答案 1

尝试以下代码:didRegisterForRemoteNotificationsWithDeviceToken

let deviceToken = deviceToken.map {String(format:"%02.2hhx",$0)}.joined()
print(deviceToken)

并将设备令牌粘贴到亚马逊SNS控制台中,它将起作用。


答案 2

对于 Objective-c,您可以使用以下内容:

NSString * deviceTokenString = [[[[deviceToken description]
                         stringByReplacingOccurrencesOfString: @"<" withString: @""] 
                        stringByReplacingOccurrencesOfString: @">" withString: @""] 
                       stringByReplacingOccurrencesOfString: @" " withString: @""];

NSLog(@"The generated device token string is : %@",deviceTokenString);

推荐