Archive for App Development

Manage multiple versions of app easily with Git

// January 16th, 2012 // 11 Comments » // App Development, iDevBlogADay

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.

Use Git

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!