Просто подумал, что я добавлю сюда свои два цента, так как это меня тоже достало. Если вы поняли, что в токене устройства должны быть пробелы, то, чтобы эта проблема никогда больше не возникала, замените этот раздел кода:
// Validate input.
if(self.deviceToken == nil || self.payload == nil) {
return;
}
с этим:
// Validate input.
if(self.deviceToken == nil || self.payload == nil) {
return;
}
else if(![self.deviceToken rangeOfString:@" "].length)
{
//put in spaces in device token
NSMutableString* tempString = [NSMutableString stringWithString:self.deviceToken];
int offset = 0;
for(int i = 0; i < tempString.length; i++)
{
if(i%8 == 0 && i != 0 && i+offset < tempString.length-1)
{
//NSLog(@"i = %d + offset[%d] = %d", i, offset, i+offset);
[tempString insertString:@" " atIndex:i+offset];
offset++;
}
}
NSLog(@" device token string after adding spaces = '%@'", tempString);
self.deviceToken = tempString;
}