An app I am working on (iOS) is being distributed to different businesses and each business needs a few customizations to said app before it is distributed to users on the app store.

Most files will stay the same but quite a few will change based off the businesses needs. Should the app be built in a way that booleans trigger these changes? or Should we separate the app into separate branches where each branch is for each business? Problem is with the second solution these branches will never be merged back into master. Also how would I make changes to the overall app that should affect every businesses app and then merge these back into each businesses app? BTW these will all start with the same code.

  • In-app purchases (for the business-specific features)? Yes, you'll need a branch for each business type. Changes to the overall app are done the usual way; you branch, make your changes, and then merge them into the main branch when you're done. Feb 10, 2016 at 2:54
  • Too bad you are not doing this in Android Studio you could use Gradle and Jenkins, jfrog.com/blog/jenkins-new-maven-gradle-release-management-look for some ideas but I have no idea if Swift let's you do this. But using git for this sounds like a square peg in a round hole
    – JimLohse
    Feb 10, 2016 at 4:37
  • What if they later wish to purchase their code?
    – RubberDuck
    Feb 10, 2016 at 9:57
  • They won't ever be able to purchase their code so that isn't a concern.
    – Tyler
    Feb 10, 2016 at 18:51

1 Answer 1


One solution I can think of is to use git tag to create a tag for each business, then specify in the build process as a variable (BUSINESS=FOO) to change the customisations. You could even try and automate that so it looks for the business name in the tag.

This avoids having to create N number of branches per business, and having to consistently keep them in check with your master branch or having to rebranch every time you release.

  • So this would be the use booleans method to trigger changes?
    – Tyler
    Feb 10, 2016 at 18:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.