Rename Package & App Name
Learn how to rename your application ID, package name, and display name for production readiness.
When starting a project from a boilerplate, one of the first things you'll want to do is rename the package name (Android Package / iOS Bundle Identifier) and the application's display name to match your brand. This is a critical step before publishing to the App Store or Google Play Store.
Renaming the package name is a breaking change for external services like Firebase, Google Sign-In, and Deep Links. Always follow the Post-Rename Checklist after changing these values.
1. Update app.json
The app.json file is the source of truth for your Expo project's configuration. You need to update several fields here.
Update App Name and Slug
Update the display name of your app and the URL slug used by EAS.
{
"expo": {
"name": "Your New App Name",
"slug": "your-new-app-slug",
...
}
}Update Package Identifiers
Update the Android package name and iOS bundle identifier. These must be unique on the App Store and Google Play Store.
{
"expo": {
...
"ios": {
"bundleIdentifier": "com.yourcompany.yourapp",
...
},
"android": {
"package": "com.yourcompany.yourapp",
...
}
}
}Update URL Scheme
If you use deep linking, update the scheme to match your new brand.
{
"expo": {
"scheme": "your-new-scheme",
...
}
}Update package.json (Consistency)
While not strictly required for the app to run, it's good practice to update the name in package.json as well.
{
"name": "your-new-app-name",
...
}2. Update EAS Project (Optional)
If you've already initialized EAS for this project, the projectId in app.json is linked to the old slug. If you want to move to a new EAS project:
- Remove the
extra.eas.projectIdfromapp.json. - Run the following command to link to a new or existing project:
eas project:init3. Regenerate Native Folders
Since this boilerplate uses Development Builds (Prebuild), you must regenerate the ios and android directories to reflect the changes in the native code.
Clean and Prebuild
Run the following command in the mobile-app directory:
pnpm run prebuild:cleanThis will delete the existing android and ios folders and regenerate them based on your updated app.json.
Post-Rename Checklist (IMPORTANT)
Ensure you complete these steps to avoid issues with external services:
1. Update Firebase Configuration
Your existing google-services.json and GoogleService-Info.plist are tied to the old package name.
- Go to the Firebase Console.
- Add a new Android App and iOS App with your new package name / bundle identifier.
- Download the new config files and replace the old ones in
mobile-app/:google-services.jsonGoogleService-Info.plist
2. Update Social Logins
Update the package name / bundle ID and regenerate client IDs in the following consoles:
- Google Cloud Console / Firebase: For Google Sign-In. You will need to update the
EXPO_PUBLIC_GOOGLE_WEB_CLIENT_IDin your.envfile with the new Web Client ID. - Apple Developer Portal: For Sign In with Apple and Push Notifications.
3. Update EAS Credentials
If you are using EAS Build, you may need to update your credentials to match the new bundle identifier/package name:
eas credentials4. Clean and Rebuild
Finally, clear the cache and rebuild your development client:
# For Android
npx expo run:android
# For iOS
npx expo run:ios