Hi Heath,
I really enjoyed the post and the approach mentioned here. I opted to do something similar but using a perl utility that can generate the version file or convert the decimalised hash. One issue I did have was that the Run Script phase runs after Xcode does the Info.plist preprocessing, as a result I would have to build twice in order for Xcode to pick up the Info.plist preprocessing prefix header. For myself I managed to fix this with an aggregate build target that consists of one Run Script phase that runs my versioning utility. Then I made that aggregate target a dependency of the target I was actually interested in versioning.
Thanks again!