Push · Push notifications

Expo + Expo Notifications

Expo Notifications in an Expo SDK 57 app for iOS and Android, wired by one command and checked by doctor.

This gives you remote and local push through Expo's push service: src/lib/push.ts implements the shim, src/hooks/use-push-token.ts is a provider-free store that checks permission and calls getExpoPushTokenAsync({ projectId }) with the id from Constants.expoConfig.extra.eas.projectId, and PushProvider (order 80) installs the foreground handler, creates the Android default channel, and deep-links to data.url when a notification is tapped - including from a cold start. If you set up with --with-examples there's also an example screen at /examples/push with a copyable token and a local test notification. Either way you get a bun run push:test script that sends one message through Expo's API. @/lib/push keeps the same API whichever option you pick - pick this when you want push without running your own APNs and FCM plumbing.

When to pick Expo Notifications

Pick Expo Notifications for push without running your own APNs and FCM plumbing: eas credentials holds the certificates, Expo's service does the sending, and the module handles tokens, the Android channel and deep links from a tap. It needs a dev build on a physical phone - Expo Go hasn't received remote push since SDK 53.

At a glance

Runs in Expo Go
No - needs a development build
Files added
7
npm packages
4
Keys to paste
None
Included in
Pro
Tests included
2

Set it up

bun run setup --push expo-notifications

Setup copies the module in, installs SDK-matched versions and removes the options you did not pick. Then bun run doctor lists every key still missing, with a link to where you get it. The step-by-step guide is in the Expo Notifications docs.

Wiring it by hand instead? Read the guide: Expo push notifications: setup, token, testing.

Questions

Can I use Expo Notifications in Expo Go?

No. This module needs a development build: npx expo run:ios or npx expo run:android locally, or eas build --profile development in the cloud.

What do I need to set up Expo Notifications in an Expo app?

Only bun run setup --push expo-notifications. There are no API keys to paste; bun run doctor checks the result.

Which other modules does Expo Notifications need?

It needs a Storage option (expo-sqlite/kv-store, MMKV or AsyncStorage). Pick those in the same setup run.

Does the ReadyNative free tier include Expo Notifications?

No. Push is a Pro category: the free tier and Starter ship it switched off. Pro is one payment with lifetime updates.

Can I build the app without Expo Notifications?

Yes. Pick none for push (bun run setup --push none) - nothing registered.

What does Expo Notifications mean for the App Store and Google Play privacy forms?

It collects: Push token (device id). Shared with: Expo push service, APNs, FCM. Setup adds its data types to the iOS privacy manifest; the docs page lists the answers for Play's Data safety form.

Which Expo Notifications version does it install?

For Expo SDK 57: expo-clipboard ~57.0.2, expo-constants ~57.0.23, expo-device ~57.0.2, expo-notifications ~57.0.18. Setup installs Expo packages with expo install, so they match the SDK.

Get it

Expo Notifications ships in Pro: one payment, lifetime updates. See pricing or browse every module.