Documentation

Push (APNs & FCM)

Configure iOS and Android push credentials in the dashboard.

Push credentials are stored encrypted per project. Configure them in Project settings → Channels after creating a project in the dashboard.

Android · FCM

  1. Create a Firebase project with your Android app package name.
  2. In Firebase → Project settings → Service accounts → Generate new private key (JSON).
  3. Upload the JSON in Channels → Android · FCM along with the FCM Project ID.
  4. Ensure the app has matching google-services.json — see Android setup.

iOS · APNs

  1. In Apple Developer → Keys, create an APNs Auth Key (.p8). Download it once — it cannot be re-downloaded.
  2. Enter Key ID, Team ID, and App Bundle ID (must match Xcode exactly).
  3. Upload the .p8 file — not a .p12 certificate.
  4. Enable Push Notifications + Background Modes on the Runner target — see iOS setup.

Common delivery errors

ErrorFix
apns_not_configuredComplete iOS · APNs in Channels
apns_403_InvalidProviderTokenRe-check Key ID, Team ID, and .p8; ensure key has APNs enabled and is not revoked
TopicDisallowedDashboard Bundle ID must match the app's bundle identifier
BadDeviceTokenUsually prod/sandbox mismatch — SDK retries automatically; reinstall app if stale
fcm_not_configuredUpload FCM service account JSON in Channels
invalid_grantFCM JSON rejected — regenerate service account key
info

Note

After updating credentials, the delivery worker refreshes cached clients when PushConfig.updatedAt changes. Restart the worker if you are running an older build without hot credential reload.