強火で進め

このブログではプログラム関連の記事を中心に書いてます。

plistファイルからアプリのバージョン情報などを取得する方法

バージョン情報取得は以下の様に行ないます。キーを指定すると値が返されるというシンプルなメソッドです。

	NSLog(@"CFBundleShortVersionString : %@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]);

ビルドバージョンはこんな感じ。

	NSLog(@"CFBundleVersion : %@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]);

ホーム画面に表示されるタイトルは以下のキーで取得できます。

	NSLog(@"CFBundleDisplayName : %@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]);

全てのキーと値は以下の記述で確認できます。その他にも plist ファイルを右クリックして「Show Raw Keys/Values」を選択する事でも確認できます。

	NSLog(@"plist %@", [[NSBundle mainBundle] localizedInfoDictionary]);

また、この様に記述する事でローカライズにも対応できます。

	NSLog(@"CFBundleDisplayName : %@", [[[NSBundle mainBundle] localizedInfoDictionary] objectForKey:@"CFBundleDisplayName"]);

ローカライズしたアプリでも全ての項目をローカライズしていない場合も有ると思います。そのためそのような環境に対応するためにローカライズされた情報を取得する場合はこちらの様な記述にしておいた方が良いでしょう。

	NSString *key = @"CFBundleDisplayName";
	NSString *val;
	val = [[[NSBundle mainBundle] localizedInfoDictionary] objectForKey:key];
	if (!val) {
		val = [[[NSBundle mainBundle] infoDictionary] objectForKey:key];
	}
	NSLog(@"CFBundleDisplayName : %@", val);