How to create a white label iOS app (Part 1)
Tags: ios, swift, xcode
Published: 2020-08-23 21:58:42

---
title: How to create a white label iOS app (Part 1)
published: true
date: 2020-08-22 11:02:39 UTC
tags: ios,swift,xcode
canonical_url: https://www.rockandnull.com/how-to-create-a-white-label-ios-app/
---

If you are a developer in a company that is developing software for its products only, then you probably won't be familiar with the "White-label" term.

A white-label app is a product produced by one company then packaged and distributed by other companies under different brands.

Let's say that are going to produce an app for coffee shops. The main functionality will be the same but we want to change the colours, icons, name, etc for each brand.

### Targets

So, let's talk about **Targets**. A target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace. For example, we can create our TestCoffee app with its files, bundle ID, etc, and then we can create a new Target (called RealCoffee), that it will share the source code with TestCoffee. The name, bundle ID, and some other properties should be different between the two targets but luckily we can differentiate them easily in the Targets.

Let's [download](https://github.com/Rock-and-Null/iOS---WhiteLabel/releases/tag/Part1) the project and get our hands on the project.

As you have already noticed, we have only one Target called TestCoffee. This is our test/abstract environment. Our first customer bought our software solution and it's called **RealCoffee**. Now, we need to duplicate our TestCoffee target:

![](https://www.rockandnull.com/content/images/2020/08/Screenshot-2020-08-22-at-12.48.16-PM.png)

Then we rename Display Name and Bundle Identifier to **RealCoffee** and **rockandnull.com.RealCoffee** accordingly.

![](https://www.rockandnull.com/content/images/2020/08/Screenshot-2020-08-22-at-12.57.13-PM-4.png)

We also need to rename the scheme so it will be easier to match the target with the scheme ( **TestCoffee copy** should be rename to **RealCoffee** ).

![](https://www.rockandnull.com/content/images/2020/08/Screenshot-2020-08-22-at-1.00.25-PM.png)

You probably have already noticed one new .plist file called **TestCoffee copy 2-Info.plist** that belongs to RealCoffee target, but don't worry we will come back to this later.

Now, run the app using the TestCoffee target and tap the "I want coffee" button. Then, switch to RealCoffee target and tap the "I want coffee". You will notice the popup message is slightly different between the two targets.

<iframe width="100%" height="386" scrolling="no" border="no" allowtransparency="true" frameborder="0" style="border:none!important;width:100%!important;height:386px;position:relative;" src="https://upscri.be/ltv52r?as_embed=true"></iframe>

This is how easy is to use **Targets** in your project! Of course, things could get messy pretty fast in a real project, but don't worry, we are here to cover these scenarios in the next parts.

Happy coding!

[How to create a white label iOS app (Part 1)](https://www.rockandnull.com/how-to-create-a-white-label-ios-app/)
[How to create a white label iOS app (Part 2)](https://www.rockandnull.com/how-to-create-a-white-label-ios-app-part-2/)
[How to create a white label iOS app (Part 3)](https://www.rockandnull.com/how-to-create-a-white-label-ios-app-part-3/)
[How to create a white label iOS app (Part 4)](https://www.rockandnull.com/how-to-create-a-white-label-ios-app-part-4/)
[How to create a white label iOS app (Part 5)](https://www.rockandnull.com/how-to-create-a-white-label-ios-app-part-5/)