Different App Display Name based on Xcode Scheme

A practical use of Xcode Configurations and Xcode Schemas

Photo by William Hook on Unsplash

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