Whenever I had to submit the app to the app store or sent a new beta to developers I used to do it by hand. I thought that even if I do that not that often, I will benefit from an automated or even semi-automated solution.
My build procedure usually contains of the following steps:
- Update internal build version number and inject hash of the current commit. This step is pretty important as you want to be able to easily identify installed app and get the source code for the version.
- Build the app, run unit tests and integration tests.
- Package and sign the app.
- Upload dSYM file to the crash reporting tool and the app to the distribution service.
Which translates to
1 2 3