Different App Display Name based on Xcode Scheme
A practical use of Xcode Configurations and Xcode Schemas
In some projects is common to have “different builds” depending on the tester groups. I’m talking about situations where you need to have “different builds” using the same code base and with the same bundle identifier, for instance: “QA”, “Beta” and “AppStore” and a common way to identify them is to change the Display Name so our testers know what build are they testing.
With a combination of Xcode Configurations and Xcode Schemas we can accomplish a lot of things and one of them is have different Displays Names for our app.
1. Add New Build Configurations
Add and name the new build configurations based on your needs. You will accomplish this by cloning the current Release or Debug Configuration.
For this example we will create two configuration QA
and BETA
copy of Release
:
2. Add Xcode Schemas
If you create schemas for your each build configuration will be easier to handle different bundle ids or display names or app icons. There are couple ways to create a new schema the fastest one is option(⌥)
+click
on the play symbol and then duplicate the original scheme.
Make sure that each Schema has the right build configuration reference in Run
and Archive
3. Add a User-Defined Setting
Select your target then “Build Settings” and press the +
and select “Add User-Defined Setting”. I will name mine APP_DISPLAY_NAME
you can use any name you want.
Then you update the value(app name) for each configuration, something like this:
4. Update Display Name
After create and give value to you “User-Defined Setting” open your info.plist
and update the value for Bundle display name
to ${APP_DISPLAY_NAME}
Then just build and run any of your Xcode Schemas and you will see how the same app can have different display names.
Different roads sometimes lead to the same castle.
― George R.R. Martin
Thanks for reading and hope you find this article helpful. As usual any feedback or comment is welcome. And if you want to waste some of your time, follow me on twitter @guerrix