• カテゴリ FireMonkey の最新配信
  • RSS
  • RDF
  • ATOM

開発ブログ - FireMonkey - OS X でバージョン情報を取得する

FireMonkey - OS X でバージョン情報を取得する

カテゴリ : 
技術メモ » Delphi » FireMonkey
執筆 : 
2013/12/8

OS X でバージョン情報を取得する

この投稿は Delphi Advent Calendar 2013 の 12/8 の記事です。

アプリケーションを作るときに必ず作るのは About ダイアログですよね。
About ダイアログにはバージョン情報を表示すると思いますが、バージョン情報はIDE上でアプリケーションに設定した値を使いたいものです。


このバージョン情報、 Windows で バージョン情報を取得する方法については、ネット上にたくさん情報があります。
たとえば→ リソースにあるバージョン情報を取得したい - Delphi Tips

では、MacOSX 用のアプリケーションの場合はどうすればいいのでしょう?

Objective-C のコード

Objective-C の場合は次のようなコードで Short Version Stringが取得できます。

NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

from EZ-NET: プログラム内から Info.plist の内容を参照する - Objective-C プログラミング

Delphi で書いてみよう

それでは Delphi で書いてみましょう。

function GetAppString(const Key: String): String;
var
  AppBundle: NSBundle;
  BundleKey: Pointer;
  version: NSString;
begin
  AppBundle := TNSBundle.Wrap(TNSBundle.OCClass.mainBundle);
  BundleKey := (NSSTR(Key) as ILocalObject).GetObjectID;
  version := TNSString.Wrap(AppBundle.infoDictionary.objectForKey(BundleKey));
  Result := UTF8ToString(version.UTF8String);
end;

function GetShortVersionString: String;
begin
  Result := GetAppString('CFBundleShortVersionString')
end;

function GetBundleVersionString: String;
begin
  Result := GetAppString('CFBundleVersion');
end;

ちなみに MacOSX ではバージョン文字列として BundleVersion と ShortVersionString があります。
どう使い分けるのでしょう?
以下は プロパティリスト キー リファレンス - ポッチンコンバート からの引用です。


CFBundleShortVersionString
このキーは、アプリケーションのリリースされた回数を識別する、バンドルのリリースバージョン番号【release version number】を指定します。
CFBundleVersion
このキーは、バンドルの(リリースされた、またはリリースされていない)回数を識別する、バンドルのビルドバージョン番号【build version number】を指定します。



Delphi で作ったアプリケーションの CFBundleVersion は x.x.x という形になっていて、それぞれメジャーバージョン、マイナーバージョン、ビルドの番号を表しています。
ShortVersionString を表示すると x.x という形になってビルド番号は表示されません。
これは、Finder から情報表示したときのバージョン情報と同じ形です。
About に表示するのはもう少し細かいバージョンを表示したいので、私は CFBundleVersion の方を表示するようにしています。
こちらであれば x.x.x の形で表示されます。


[参考サイト]

リソースにあるバージョン情報を取得したい - Delphi Tips
EZ-NET: プログラム内から Info.plist の内容を参照する - Objective-C プログラミング
プロパティリスト キー リファレンス - ポッチンコンバート


[関連記事]

FireMonkey - OS X で URLをデフォルトブラウザで開く

  • コメント (0)
  • トラックバック (0)

コメントの投稿

お気軽にコメントください : 投稿されたコメントは承認後に表示されます
プロダクツ

開発ブログ

Link

AD