> ## Documentation Index
> Fetch the complete documentation index at: https://docs.newly.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Changing your bundle ID

> If you rename your bundle ID and your iOS build still uses the old one, here's the two-step update that keeps everything in sync.

Renaming your iOS bundle ID is two steps, not one. Doing only the first step is the most common cause of *"my app.json says `com.newname.app` but the build still shows `com.oldname.app`"* errors.

This guide walks through both steps in the Newly UI.

## Why it's two steps

Your bundle ID is referenced in two places:

1. *Your project's Apple credentials* (stored on Newly's side). EAS reads this when building.
2. *OneSignal's APNs platform config* (if you've connected push notifications). OneSignal sends notifications to the bundle ID it has on file.

Saving a new bundle ID in the first place doesn't automatically push it to the second. So OneSignal can keep using the old bundle ID even after your project, app.json, and EAS build are all on the new one.

## The two-step update

<Steps>
  <Step title="Update the Bundle ID in Apple Credentials → Team Info">
    Open your project, go to the **Deploy** tab on the right, and find the Apple Credentials section. Click into the **Team Info** step. (The same step is also reachable from the OneSignal panel and the Compliance card on the Deploy page – they all lead to the same form.)

    Change the **Bundle ID** field to your new value and click **Save**.

    What this does behind the scenes:

    * Updates the bundle ID in your project's Apple credentials on our side
    * Writes the new value into your project's `app.json` under `ios.bundleIdentifier`

    Your repo and our database are in sync after this step. EAS builds triggered from now on will use the new bundle ID.
  </Step>

  <Step title="Push the new bundle ID to OneSignal's APNs config">
    Only needed if you have OneSignal connected. Skip this step if your project doesn't use push notifications.

    Open the OneSignal panel (**More** → **Push Notifications**) and click **Configure platforms**.

    This re-pushes the current bundle ID to OneSignal's APNs platform config. Without this step, OneSignal keeps the old `apns_bundle_id` baked in and your notifications won't deliver to the new app identifier.

    *Alternative:* clicking **Disconnect** then **Connect OneSignal** again does the same thing – reconnecting always calls Configure platforms automatically.
  </Step>

  <Step title="Trigger a fresh iOS build">
    From the Deploy tab, trigger a new iOS build. It will use the new bundle ID for the EAS credentials prep, the Apple submission, and (if applicable) the OneSignal APNs platform.
  </Step>
</Steps>

## How to check that both sides are in sync

After step 2, you can verify both pieces:

* *In Newly:* open your `app.json` from the file tree and confirm `ios.bundleIdentifier` matches what you intended.
* *In OneSignal:* (optional) open your OneSignal dashboard for this app, go to **Settings → Apple iOS (APNs)**, and check the bundle ID listed there matches.

If the EAS build still emits log lines like *"Linking bundle identifier oldvalue"*, the Apple credentials side wasn't saved cleanly. Re-do step 1 and confirm the save lands.

## A note on bundle ID format

iOS accepts any reverse-domain bundle ID (`com.yourname.app`, `fun.example.app`, etc.).

For Android AAB builds specifically, the build flow currently accepts any reverse-domain package name, but earlier versions required the `com.*` prefix. If you're on a brand-new project, you can pick anything. If you're upgrading an older project and the AAB build rejects your package name, ask the AI to update `android.package` in `app.json` to a `com.*` value and try again.

## Related

* [OneSignal Integration](/integrations/onesignal) – full setup for push notifications.
* [Deployment](/features/deployment) – how Newly builds and ships your app.
