Expo Push Notifications
Set up push notifications for iOS and Android.
Quick Start with Claude Code
Run /appboost in Claude Code to configure push notifications. The wizard will set up your Expo project ID and guide you through the platform-specific setup.
Prerequisites
- Expo account with project created
- For Android: Firebase account (free)
- For iOS: Paid Apple Developer account ($99/year)
Important: iOS push notifications require a paid Apple Developer account. Free accounts cannot generate push notification credentials.
iOS Setup
EAS Build handles iOS push notification configuration automatically. During your first eas build, you’ll be prompted to enable push notifications and generate an APNs key.
Register your test device with
eas device:createbefore your first build.
Android Setup
Android push notifications use Firebase Cloud Messaging (FCM).
1. Set Up Firebase Credentials
Follow the official Expo guide on setting up Firebase Cloud Messaging (FCM) credentials: Expo Push Notifications - FCM Credentials
2. Add Firebase to Your App
- Register your app in the Firebase Console.
- Use your app’s package ID to set up the project.
- Download the
google-services.jsonfile and place it in your project’s root directory.
[!IMPORTANT] The
google-services.jsonfile must be in the root directory of your project, at the same level aspackage.json.
3. Configure EAS Credentials
Upload your Firebase service key to EAS:
eas credentialsSelect:
- Platform: Android
- Which credentials: Push Notifications (FCM)
- Upload FCM Server Key
Get the server key from Firebase Console → Project Settings → Cloud Messaging.
4. Get SHA-1 Fingerprint
For Firebase setup, you need your app’s SHA-1:
- Build your app at least once with EAS
- Go to Expo Dashboard
- Find your project → Credentials → Android
- Copy the SHA-1 fingerprint
- Add it to Firebase Console → Project Settings → Your App → SHA certificate fingerprints
Environment Setup (Both Platforms)
Add your Expo project ID to .env:
EXPO_PUBLIC_PROJECT_ID=your-expo-project-idFind this in your Expo dashboard or app.json under extra.eas.projectId.
Required: Without this, push notifications won’t register.
Update app.json (Android)
Add Firebase configuration:
{
"expo": {
"android": {
"package": "com.yourcompany.yourapp",
"googleServicesFile": "./google-services.json"
}
}
}Testing Notifications
Use the “Push Notification” button in the Profile screen to send a test notification.
Configuration Checklist
Both Platforms
-
EXPO_PUBLIC_PROJECT_IDin.env
iOS
- Paid Apple Developer account ($99/year)
- Device registered via
eas device:create
Android
-
google-services.jsonin project root -
googleServicesFilepath inapp.json - FCM key uploaded via
eas credentials - SHA-1 added to Firebase project
Note: Push notifications require a native build (development, preview, or production). They don’t work in Expo Go.