I have been looking into automating some of my development tasks in Cocoa/Xcode environment. For the longest time I was using Subversion which would integrate quite well with Xcode. Recently, however, I have been exploring other version control systems. Especially git. Since it’s a much newer (D)VCS it does not have as much integration into systems as subversion.
I have managed to find some interesting solutions to include Git version number in Xcode project however the only actual solutions I have found are written in languages I don’t care for anymore. Yes I can program in them but why would I want to.
So here is a quick solution written in MacRuby.
#!/usr/local/bin/macruby
git_output = `git show --abbrev-commit`
commit_version = git_output.split("\n").grep(/^commit/).first
version = commit_version.gsub(/^commit\s+(.*)\.{3}/, "\\1")
if version
list = NSMutableDictionary.dictionaryWithContentsOfFile("Info.plist")
list["CFBundleVersion"] = version
list.writeToFile(’Info.plist’, :atomically => true)
end
In my final solution I intend to have an output in following format:
major.minor.revision (build)
where the “build” is going to correspond with the git commit version
and the other parts will reflect the marketing version numbers.
Ref:
Shiny Frog Article Python solution
Ref:
Cocoa is my Girlfriend Article Perl solution
You are currently browsing the archives for the Apple category.