Reputation: 889
We have an app (for both iOS and Android) that we would like to style differently for different customers. What I mean by this is that the functionality, features, navigation, layout etc. of the app will remain exactly the same but what will change is - fonts, icons, colours, button shapes,font sizes etc. which would be specific to the customer's brand. We also want to have a different store listing per brand and the app may be called with a different name per brand like XXX App
We have considered the following solutions
Have completely separate code bases for the app / customer - Advantage would be ease of publishing but super high maintenance costs would be the biggest disadvantage
Have single code base but do some sort of themeing solution / customer - In this case, not sure how the publishing process would work in terms of the bundle ids, store listing etc.
Have single code base with packages or libraries. Create different shell apps for different customers and import the core packages or libraries
Have a single app which is listed as our company's app, and each brand can use that - which is the prescribed solution on the stores, but it doesn't seem very commercially viable as a brand paying money would want their brand to be reflected in the app and their respective listing on the store
Using some homegrown bash script mechanism to configure things at build time?
something other mechanism...?
I would like to know
Thanks
Upvotes: 2
Views: 1507
Reputation: 836
According to App Store review guidelines, you MUST publish the app with the apple id of your customers because it has the name and brand of them. Or, you could publish by yourself with a legal written statement that says that you can use their brand to publish the app.
The guideline 5.2 talks about this with more details.
https://developer.apple.com/app-store/review/guidelines/
For google play the thing is the same, but the implementation came more recently. I personally dont tried to submit an app for a customer after google published this new rules, but I did it once (2 months ago) and no problems so far.
You can look at this rules in more details here:
https://play.google.com/about/ip-impersonation/ip/
Now, talking about the bundle id and app id, they must be different. For the name of the app this wouldnt be a problem, but for the app id and bundle they must be different.
For your solutions, all work fine. But in my experience a very maintained app that relies on config files to customize the interface for each client is more prone to work. I know that each client will ask for custom modifications, but for that you can use branches for each one and maintain always updated to the master branch.
Upvotes: 1