How to change the app name shown in a Catalyst app?

Working on the Mac Catalyst version of an iPad app. I don't know if this is a bug, intended behavior, or a setting I am missing. But how do you change (or what value is used) the app name shown in the main menu and the About box?

For example, let's say my app's "Bundle name" in Info.plist is "MyCoolApp" and the "Bundle display name" is "My Cool App".

When the app is run on iOS, I see "My Cool App" under the icon on the home screen. Perfect. But on the Mac, the app's main menu shows "MyCoolApp". Tapping on that menu includes the "About MyCoolApp" menu. The About box also shows "MyCoolApp" under the app icon. Other standard default menus also reference "MyCoolApp".

I want all of those to show "My Cool App", not "MyCoolApp".

What needs to be changed to get the "Bundle display name" to be used?
So it seems that the name of the app shown in a Mac Catalyst app comes from the "Product Name" build setting for your target. I changed that from MyCoolApp to My Cool App and I started seeing the results I wanted.

I find it odd that the app display name comes from the resulting .app name and the executable name and not the "Bundle display name" from Info.plist.

Maybe this will help someone else.
This is what I found for Catalyst mac app:

If you add both CFBundleName and CFBundleDisplayName into your InfoPlist.strings file, and set "Application has localized display name" to YES in your Info.plist, then the $(PRODUCT_NAME) will never be shown to user.

However, the app name is always localized to your app developent language, not to the current system language. I have not yet found a solution. In addition, the main menu and about dialog are perfectly localized.

Note also that I found another serious problem with the localization of Catalyst applications: https://developer.apple.com/forums/thread/670649

Try the following settings, it works in my project.

Info.plist:

Bundle name: $(PRODUCT_NAME)
Bundle display name: $(PRODUCT_NAME)


InfoPlist.strings:

CFBundleName = "Name in Menu";
CFBundleDisplayName = "Name in Dock and LaunchPad";

In my experience, in order to change Mac Catalyst executable name (Name.app), I had to change PRODUCT_NAME in the Xcode project.

If you are open to change the $(PRODUCT_NAME), it will change the app name. Otherwise, set specific values for CFBundleName (for macOS menu and app bundle name), and CFBundleDisplayName (the text displayed in the app's nav bar). You can also set localized app names for these 2 values in a strings file.

How to change the app name shown in a Catalyst app?
 
 
Q