2009-09-11

Aboutパネル - リビジョン番号を自動でplistに設定する(1)



タイトルだけだとなんのことやらですが、↑これです。
アプリの「○○について」のウインドウに表示される数字です。

  • 左側のはアプリバージョン(Info.plist の CFBundleShortVersionString)

  • 右側のはビルドバージョン(Info.plist の CFBundleVersion)


  • というのが純正アプリを見ると通例みたいです。
    ビルドバージョンてビルド回数ってことなんでしょうか、でもそんなものは数えてません。
    バージョン管理システムのリビジョン番号っぽいものを使っているアプリが多い気がします。

    と言う訳で丁度 Subversion でプロジェクト管理をしているので、ここにリビジョン番号を入れようと思います。
    でも現在のリビジョン番号を毎回調べて Info.plist に入力するというのは大変面倒です。
    Xcode はビルド時に任意のスクリプトを実行できるようですし、なんとか自動化したいと思います。
    ウロウロして見つけたここの perl スクリプトを使ってみます。

    設定の仕方 いち


    Xcode で自動化したいプロジェクトを開いて「グループとファイル」>「ターゲット」を展開してアプリを選択>右クリックで「新規スクリプトを実行」
    これで「ターゲット」のアプリを展開すると「スクリプトを実行」が追加されています。


    設定の仕方 に


    手順1で追加した「スクリプトを実行」を右クリックして「情報を見る」してウインドウを開きます。
    「シェル」には perl のパスを(わからない方はターミナルで which perl すると表示されます)
    「スクリプト」には先ほどの perl スクリプトをコピペします。


    この時

    my $REV = `/usr/bin/svnversion -n ./`;

    ここは`/自分の Mac の Subversion パス/svnversion -n ./`; に変えます。

    設定の仕方 さん


    「ターゲット」のアプリの「情報を見る」>「プロパティ」>「バージョン」に [BUILD] を設定します。


    Info.plist から設定する場合はこんな感じ。


    これでビルドする度に、現在のリビジョン番号が[BUILD]と置換され、自動的に設定されます。便利!

    CFBundleVersion とか CFBundleGetInfoString とか区別がつかないって方は MyCometG3 さんのinfo.plistとか。 [開発系とか]エントリーが理解しやすかったです。



    何でもいいから更新しよう月間続いての更新予定(成功したら)

  • 2台の Mac で Subversion のパスが違ったので片方でエラーになる…。自動でどうにか判別できるといいなぁ。

  • CFBundleShortVersionString と CFBundleGetInfoString (Finder の情報ウインドウのバージョン欄はなぜかこっちを使う)は同じアプリバージョン値だから、ちょっと楽できそう。



  • byT

    0 件のコメント: