How to override the bundle/app name?

Please provide the following:

  1. SDK Version: 48
  2. Platforms(Android/iOS/web/all): iOS
  3. Add the appropriate “Tag” based on what Expo library you have a question on.

My app displays the correct name fine except when any system prompt shows up, and it shows “app” Wants to Use “google.com” to Sign In rather than my real app name. I found the answer from stackoverflow that says I need to override bundle name. Can anyone tell me how to do that?

( To clarify, this is not about the Google SSO consent screen, that screen is showing my app name correctly. )

Code related

import * as Google from "expo-auth-session/providers/google"

const [request, response, promptAsync] = Google.useAuthRequest({
    expoClientId: 'xxx',
    iosClientId: 'xxx',
    webClientId: 'xxx',
  })

Hi @swotong

The Bundle Name is set in Info.plist like this:

    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>

In a managed app you can alter Info.plist using something like this in app.json:

{
  "expo":
    "ios": {
      "infoPlist": {
        "CFBundleName": "$(PRODUCT_NAME)"
      }
    }
  }
}

But I don’t think this should be necessary. I believe that PRODUCT_NAME gets set from expo.name in app.json in a managed project.

If you have an ios directory then your project is essentially on the Bare workflow. If you have no changes in ios that you want to keep, you can delete it. (Same goes for android.)

Yeah, it should use the expo.name I agree but it doesn’t seem to be doing that, might be a bug? CFBundleDisplayName is showing the value of expo.name properly while PRODUCT_NAME is just ‘app’.

I’m using EAS build eas build --profile development --platform ios , here is a build I submitted just now. Build id is c2b0c630-62f7-477a-af59-e9a3a3222def

I can reproduce this too if I build it locally with npx expo run:ios, I see in my /ios/app.xcodeproj file under the /* Begin XCBuildConfiguration section */ section it has PRODUCT_NAME = app; which seems the problem.

Doing that will generate an ios directory. So are you sure you did not do that before changing expo.name?

What happens if you rename ios to ios.bak and then build again?

oh, I have deleted the entire ios directory before I run eas build or npx expo run:ios

OK, well I am not sure what’s going on, but setting CFBundleName in expo.ios.infoPlist should work around the problem.

ok, just tried setting CFBundleName in expo.ios.infoPlist and build with eas build, it works! thanks a lot!

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.