"Phantom" Bundle Versions with Jenkins

If your using Jenkins' ability to automatically set the bundle version on each build with Xcode (and you should be), you may occasionally see the product published has an old or inconsistent version in the Info.plist file.

If you run across this, it's because the name of the build product changed or something else caused there to an old build product left over in the build output folder.

A simple way to prevent this is to check the "clean before build" Xcode build setting the job configuration. A more brute force and manual approach is to tell Jenkins to delete the workspace and start with a clean slate on the next build.

Side Note

Remember to keep your build process simple. It's OK to do a lot with a build, but keep the process of doing it decomposed into simple, easy to understand steps.

You want 100% confidence in the build that it's perfectly repeatable and not mysterious. Factor out complexity, don't use automation as a crutch to increase it.