After some headbanging tonight to find why I wasn’t receiving my test push notifications I found out that it’s actually a much bigger issue affecting all iOS 13 users!
The deviceToken fields of the DeviceRegistration table looks like this:
This obviously isn’t a valid device token! After digging a little bit I found out that the reason is that your iOS SDK uses [NSData description] (albeit implicitly by using [NSString stringWithFormat:@"%@", token]) to convert the token to NSString. However, this is unreliable since what description returns can change. And indeed it did change in iOS 13!
For more info see the comments of this answer: ios - How can I convert my device token (NSData) into an NSString? - Stack Overflow
Please treat this issue with the needed priority as it effectively prevents almost all iOS users from receiving push notifications!
I also came across this issue in iOS 13/Xcode 11. I updated my app to use the latest version of the Backendless SDK, which is now called BackendlessSwift
Using the new version the issue is not longer occurring and device Token is correctly saved during device registration.
It took me about 30 minutes to get up and running on the new SDK. Some of the functions are slightly different, but Xcode essentially suggested all the new nomenclature for me, it was just a matter of going through each function call.
Looks like a lot of things have different names and some synchronous calls are missing. I don’t have the time to migrate right now but thanks for letting me know of this alternative SDK.