Remote Push Notifications for iOS devices have many moving parts that can cause issues. Let's explain the most common scenarios:
1. App Bundle ID declared in the App is different than the one declared when requesting the APNs Certificate.
APNs depends on the App Bundle ID to know what devices have registered tokens under that App Bundle ID. So if there is a mismatch, APNs will send the Remote Push notifications to the Certificate declared App Bundle ID.
2. Device does not create the Remote Push Token.
The App requires that both capabilities and MOCAconfig.plist are correctly configured in order to be able to use the system libraries involved in generating the Remote Push token.
3. The App is declared as Development in the MOCA Console but the certificate uploaded is a Production certificate.
This one is common as certificate mismatch causes a difficult to track issue. Until the App reaches testflight or is published in the AppStore, the device will identify itself as development. This means the Developer Certificate needs to be used on Apps that are not published to AppStore/Testflight, and the App created in MOCA must be under the status "Development - connecting to test servers". This will use the APNS sandbox. Before the App is published, a new MOCA Console App must be created, with the status set as "Production - Connecting to live servers". Some platforms. like Fabric, require you define the app entitlements to know what certificate to use. Rule of thumb is that a Production App needs a production certificate and also a production status in the MOCA Console.
4. The Remote Push Token never reaches our servers.
Network connectivity is paramount as we need to receive the data package that contains the up to date token. Once it's received, the device needs connectivity as remote push notifications are network data reliant.