Being new to Backendless I make some research on a topic very important for us: iOS push notifications.
First of all there’s no debug/release certificate separation per app. This is a problem. The solution cannot be to use the release profile in debug mode because it’s not working for embedded binaries such as widgets or extensions.
The second limitation for modern backend is the absence of multiple push configuration per backend app. Let’s say the you have two or more mobile app that share the same backend, how you can send notification to all of them? You have to choose one and only one push certificate. We’re currently developing three products with multiple client apps per backend, and we can’t use BE for them; too sad.
Backendless offers feature that are far superior to any other (m)BaaS on the market (geofancing, media streaming, concrete business logic, etc) but seems not to give the due attention to push notification, mainly for iOS.
I hope my considerations don’t sound as an “accuse” to anyone. Simply I’m so excited to see such a great product lacking such basic functionalities, mainly the dual certificate issue.
ps: I post this as an “idea” and not as a “problem”. Happy to see some considerations.
First of all there's no debug/release certificate separation per app.
If you deploy a sandbox certificate, Backendless will use the debug servers to deliver notifications. If you deploy a universal certificate, Backendless will use the production servers. You can have multiple version of the app and deploy debug cert into one version and prod cert into another version, which creates a clean separation between the two.
The second limitation for modern backend is the absence of multiple push configuration per backend app.
That is correct, you cannot deploy more than into the same app, just like you cannot have more than one provisioning profile in the same iOS app. If you have multiple apps sharing the backend, then you create individual backends just for the push notification functionality for each app. Your multiple client-side apps can still share the backend data from yet another app.
Multiple BE apps just for push is like multiple versions for debug/release certificates. It works, but considering how much is powerful and complete your system, it seems so inadeguate. Of course if these could be optional marketplace products I’d be fine with it, more than paying for underused versions the same apps.
Since iOS SDK uses a singleton for the backend, I don’t see how it is possible to use one BE app for push and another one for data. Of course we could use the REST for accessing the secondary app but, again, this is a solution far from elegant.
In order to work this solution need a change on your part: multiple Backendless class instances in the same client app.
With the current implementation of the SDK your options would be:
Use the REST API to register the device with a specific backend app
Fork the SDK and change the behavior of the singleton