Skip to main content

Requirements

Before you can send pushes, you need an APNs key tied to your Apple Developer account and a build that includes the push entitlement. APNs uses your bundle ID to route notifications to the correct app.

Configure APNs

  1. Apple Developer Portal → Certificates, Identifiers & Profiles → Keys
  2. Create a new key with Apple Push Notifications service (APNs)
  3. Download the .p8 file (only available once)
  4. Note your Key ID and Team ID

Environment Variables (API)

Set these on the API server:
Notes:
  • Use APNS_PRODUCTION=false for dev builds.
  • Use APNS_PRODUCTION=true for TestFlight/App Store builds.

iOS Entitlement

Ensure APNs entitlement is present in apps/mobile/app.config.ts:
Rebuild the iOS app after changing entitlements.

Device Token Registration

The app registers a native device token when the user taps Enable Notifications:
  • apps/mobile/lib/notifications.ts
  • apps/mobile/app/onboarding/push-notifications.tsx
The token is stored in the backend under device_tokens and used when your API sends through APNs.

OS Permission Sync

The app re-checks iOS notification permissions whenever it becomes active and updates the backend, so device-level settings are respected even if the in-app toggle is on:
  • apps/mobile/app/_layout.tsx
  • apps/mobile/app/notifications.tsx

Delivery Notes

APNs uses different endpoints for development and production. If the environment does not match the build type, APNs accepts the request but the device will not receive it. Make sure the topic matches your bundle ID (com.launchhq.mobile).