Rename Package & App Name
Safely change the Expo display name, slug, native identifiers, and deep-link scheme.
The generated Expo project uses mobile-app/app.config.ts as the native configuration source. It is not an app.json file.
Changing a bundle identifier or package name creates a new App Store/Play identity and breaks links to existing Firebase, EAS, and store credentials. Plan a migration before changing a published app.
Update app.config.ts
Edit the values in the exported config:
name: 'Your App Name',
slug: 'your-app-slug',
scheme: 'yourapp',
ios: {
bundleIdentifier: 'com.example.yourapp',
},
android: {
package: 'com.example.yourapp',
},The current template identifiers are com.soewidiputra.exonlate.mobile for both platforms and exonlate for the scheme. Update the permission text in the config/plugins when it still contains the old display name.
The package.json name (expolate) is a JavaScript package label and may be renamed separately; it does not replace native identifiers.
Update EAS and update services
app.config.ts contains the EAS project ID and Updates URL in extra.eas/updates. For a new EAS project:
eas project:initThen review the generated EAS project ID, update URL, eas.json profiles, and environment values. Never ship the template's demo API URL in a production profile.
Regenerate native projects
From mobile-app/:
pnpm prebuild:clean
pnpm android # or pnpm ios on macOSCommit or back up native changes first: prebuild:clean removes and regenerates android/ and ios/.
Update external services
After changing identifiers or scheme:
- Register new Android/iOS apps in Firebase and replace both service files.
- Update Google Sign-In client configuration and
EXPO_PUBLIC_GOOGLE_WEB_CLIENT_IDas needed. - Update Apple Sign-In capabilities/Service IDs for the new bundle identity.
- Reconfigure RevenueCat app/store products and public SDK keys if the app identity changed.
- Update AdMob app IDs and banner IDs.
- Update backend verification/reset links to use
yourapp://link?destination=.... - Reissue EAS credentials and store signing configuration where required.
Verify the deep-link contract
The app's allowlisted entry point is /link:
yourapp://link?destination=reset-password&token=...&email=...See Deep Links before changing backend URLs.
