0

This question already has an answer here:

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.

marked as duplicate by gnat, user40980, Community Feb 10 '16 at 20:13

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 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. – Robert Harvey Feb 10 '16 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 '16 at 4:37
  • What if they later wish to purchase their code? – RubberDuck Feb 10 '16 at 9:57
  • They won't ever be able to purchase their code so that isn't a concern. – Tyler Feb 10 '16 at 18:51
0

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 '16 at 18:52

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