BowlerKit

Rename Package & App Name

8/20/2026

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.

mobile-app/app.config.ts
{
  "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.

mobile-app/app.config.ts
{
  "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.

mobile-app/app.config.ts
{
  "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.

mobile-app/package.json
{
  "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:

  1. Remove the extra.eas.projectId from app.json.
  2. Run the following command to link to a new or existing project:
eas project:init

3. 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:clean

This 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.

  1. Go to the Firebase Console.
  2. Add a new Android App and iOS App with your new package name / bundle identifier.
  3. Download the new config files and replace the old ones in mobile-app/:
    • google-services.json
    • GoogleService-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_ID in your .env file 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 credentials

4. Clean and Rebuild

Finally, clear the cache and rebuild your development client:

# For Android
npx expo run:android

# For iOS
npx expo run:ios