Git で SVN みたいなリビジョン番号を取りたい
以前の記事を書いた時はリポジトリが SVN だったので、ビルドスクリプトで埋め込むリビジョン番号も SVN のリビジョンをそのまま使ってたけど、最近 Git に移行したので、ハッシュ値を替わりに使うようスクリプトを編集した.
開発中 TestFlight を使ってる間はハッシュ値で全然問題なかったんですが、 iTunes Connect 提出の際に以下のルールにハマった.
iTunes Connect 提出用アプリの CFBundleVersion は、
- 数字(ピリオド含みOK)
- 前バージョンの値よりも大きい
じゃないとダメよ、というやつ.
SVN の時はそのままリビジョン番号をバッチで埋め込んでたのが、Git にしたときにハッシュ値を使うようにしたもんだから、そのままでは iTunes Connect に提出できなくなってしまった. . .
で、結局下記のコマンドでコミット数をカウント・取得して、その値を CFBundleVersion として使うようにした.
$ /usr/bin/git log --oneline | wc -l | sed -e "s/[ \t]*//g" 1105
そのままだと上に書いた “前バージョンの値よりも大きい” ってやつに引っかかる時は、ビルドスクリプトの中で固定値を足せば良さそう.
ちなみに Git への移行期には git-svn を使ってたんですが、その場合は
$ /usr/bin/git svn log --oneline -1 | cut -d '|' -f1 | sed -e "s/r//" 8319
みたいな感じでやってました.