iPhoneアプリを書いています。公開済みですが、バージョン番号を表示する機能を追加したいです。
リリースする各バージョンでこれを手動で行う必要はありません...
Objective-C でアプリのバージョンを確認する方法はありますか?
ここで説明するように、スクリプトを使用してヘッダー ファイルを現在の Subversion リビジョン番号で書き換えます。そのリビジョン番号は kRevisionNumber 定数に格納されます。次に、次のようなものを使用してバージョンとリビジョン番号にアクセスできます。
[NSString stringWithFormat:@"Version %@ (%@)", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"], kRevisionNumber]
これにより、「バージョン 1.0 (51)」という形式の文字列が作成されます。
Brad Larsonの回答に基づいて、情報plistにメジャーバージョンとマイナーバージョンの情報が保存されている場合(特定のプロジェクトで行ったように)、これはうまくいきました:
- (NSString *)appNameAndVersionNumberDisplayString {
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString *appDisplayName = [infoDictionary objectForKey:@"CFBundleDisplayName"];
NSString *majorVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
NSString *minorVersion = [infoDictionary objectForKey:@"CFBundleVersion"];
return [NSString stringWithFormat:@"%@, Version %@ (%@)",
appDisplayName, majorVersion, minorVersion];
}
現在、マイナー バージョンを手動で更新するのは面倒な場合があるため、ソース リポジトリのリビジョン番号のトリックを使用するのが理想的です。あなたがそれを結び付けていない場合 (私が結びつけていなかったように)、上記のスニペットは役に立ちます。また、アプリの表示名も引き出します。
これは私がアプリケーションで行ったことです
NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
うまくいけば、この簡単な答えが誰かを助けるでしょう...
CFBundleShortVersionString
plist.info で文字列を指定し、提供された APIを使用してプログラムで読み取ることができます。
ビルド バージョンとアプリ バージョンの 2 つがあります。
アプリのバージョンを取得するには:
NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
ビルド バージョンを取得するには:
NSString *buildVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
// Syncs with App Store and Xcode Project Settings Input
NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
XYZ形式のバージョン文字列を取得する簡単な方法は次のとおりです。
[NSBundle mainBundle].infoDictionary[@"CFBundleVersion"]
または、XY のみの場合:
[NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]
これらのスニペットはどちらも、ラベル オブジェクトの text プロパティに割り当てる文字列を返します。
myLabel.text = [NSBundle mainBundle].infoDictionary[@"CFBundleVersion"];
アプリの info.plist ファイルを読み取り、キー CFBundleShortVersionString の値を取得します。info.plist を読むと NSDictionary オブジェクトが得られます
これは、リビジョン管理システムで処理するのに適しています。そうすれば、ユーザーからバグ レポートを受け取ったときに、そのコードのリビジョンをチェックアウトし、(できれば) ユーザーとまったく同じコードを実行してバグを再現できます。
ビルドを行うたびに、コードの現在のリビジョン番号を取得し、プロジェクト内のファイルを更新するスクリプトを実行します (通常は、何らかの形のトークン置換を使用します)。次に、エラー出力にリビジョン番号を常に含めるエラー処理ルーチンを作成するか、「バージョン情報」ページに表示することができます。