diff --git a/modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp b/modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp index 0aa43b6cb8..efcb6ec319 100644 --- a/modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp +++ b/modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp @@ -841,12 +841,22 @@ struct PushNotifications::Pimpl : private PushNotificationsDelegate void registeredForRemoteNotifications (NSData* deviceTokenToUse) override { - NSString* deviceTokenString = [[[[deviceTokenToUse description] - stringByReplacingOccurrencesOfString: nsStringLiteral ("<") withString: nsStringLiteral ("")] - stringByReplacingOccurrencesOfString: nsStringLiteral (">") withString: nsStringLiteral ("")] - stringByReplacingOccurrencesOfString: nsStringLiteral (" ") withString: nsStringLiteral ("")]; + deviceToken = [deviceTokenToUse]() -> String + { + auto length = deviceTokenToUse.length; + + if (auto* buffer = (const unsigned char*) deviceTokenToUse.bytes) + { + NSMutableString* hexString = [NSMutableString stringWithCapacity: (length * 2)]; + + for (int i = 0; i < length; ++i) + [hexString appendFormat:@"%02x", buffer[i]]; - deviceToken = nsStringToJuce (deviceTokenString); + return nsStringToJuce ([hexString copy]); + } + + return {}; + }(); initialised = true; diff --git a/modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp b/modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp index c23d8e257d..2a803aaeba 100644 --- a/modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp +++ b/modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp @@ -469,12 +469,22 @@ struct PushNotifications::Pimpl : private PushNotificationsDelegate //PushNotificationsDelegate void registeredForRemoteNotifications (NSData* deviceTokenToUse) override { - auto deviceTokenString = [[[[deviceTokenToUse description] - stringByReplacingOccurrencesOfString: nsStringLiteral ("<") withString: nsStringLiteral ("")] - stringByReplacingOccurrencesOfString: nsStringLiteral (">") withString: nsStringLiteral ("")] - stringByReplacingOccurrencesOfString: nsStringLiteral (" ") withString: nsStringLiteral ("")]; + deviceToken = [deviceTokenToUse]() -> String + { + auto length = deviceTokenToUse.length; + + if (auto* buffer = (const unsigned char*) deviceTokenToUse.bytes) + { + NSMutableString* hexString = [NSMutableString stringWithCapacity: (length * 2)]; + + for (int i = 0; i < length; ++i) + [hexString appendFormat:@"%02x", buffer[i]]; - deviceToken = nsStringToJuce (deviceTokenString); + return nsStringToJuce ([hexString copy]); + } + + return {}; + }(); initialised = true;