Manage multiple versions of app easily with Git
With the proliferation of free, lite and full versions of apps floating around, sometimes I see people wonder how to manage them. This is just a short little post that talks about how I do it for one app that I manage for a client.
The bulk of the work is actually handled by git. We have a free and 3 paid versions of the app. I won’t name the app, but I can describe how each version differs. The free version has a handful of assets to play with. Two of the paid versions are different themes of the same app. Each one has a larger set of assets that match their corresponding theme. The last one, also paid, is the same underlying app, but marketed to an entirely different customer base and again has a drastically different collection of assets.
What’s different in each app?
Basically, what’s different is the following:
- Bundle ID
- App Icon
- Assets (images)
- Maybe some button text
How does git help?
With git, I make a working version of the app. I then do a check in and tag it. I then modify all the above items for the next app. Check it in and tag it. You get the point.
For future versions (new features, bug fixes), I just checkout from those tags, reapply the new changes and then push to the App Store.
Granted, I could probably also use branches, but that seems like too much work because then I’m mentally tracking 4 versions of the app, which I don’t want. I want one app mentality, that just gets compiled 4 different times.
It’s been awhile since we talked code here and I thought that would be a good thing to share with the dev community.
I hope this works well for you too. Lemme know if you have any questions!