132

アプリのビルド バージョンをプログラムで取得する方法はありますか? 調整用のコードを実行するために、ユーザーが AppStore を介してアプリを更新したことを検出できる必要があります。

4

7 に答える 7

297

Xcode ターゲット サマリーの「バージョン」フィールドに設定した値は次のとおりです。

スイフト3

let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String

オブジェクトC

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

スイフト2

let version = NSBundle.mainBundle().infoDictionary?["CFBundleShortVersionString"] as! String

そして「ビルド」:

スイフト3

let build = Bundle.main.infoDictionary?[kCFBundleVersionKey as String] as? String

オブジェクトC

NSString *build = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleVersionKey];

スイフト2

let build = NSBundle.mainBundle().infoDictionary?[kCFBundleVersionKey as String] as! String
于 2013-06-03T01:37:56.677 に答える
85

infoDictionary を使用して試すことができます

NSDictionary *infoDictionary = [[NSBundle mainBundle]infoDictionary];

NSString *version = infoDictionary[@"CFBundleShortVersionString"];
NSString *build = infoDictionary[(NSString*)kCFBundleVersionKey];
NSString *bundleName = infoDictionary[(NSString *)kCFBundleNameKey]; 
于 2013-06-03T01:00:53.357 に答える
12
于 2016-03-10T15:10:12.853 に答える
2

1) アプリのバージョンを取得するには、次のものを使用する必要があります。

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

2) ビルド バージョンを取得するには、以下を使用する必要があります。

NSString *buildVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
于 2016-07-06T13:04:09.957 に答える
2

詳細

  • Xcode バージョン 10.3 (10G8)、Swift 5

解決

class Info {
    static let dictionary = Bundle.main.infoDictionary ?? [:]
    enum Value {
        case build, version
    }
}

extension Info.Value {

    var key: String {
        switch self {
            case .build: return kCFBundleVersionKey as String
            case .version: return kCFBundleInfoDictionaryVersionKey as String
        }
    }

    var string: String? { return Info.dictionary[key] as? String }
}

使用法

if let value = Info.Value.version.string { print("Version: \(value)") }
if let value = Info.Value.build.string { print("Build: \(value)") }

結果

プロジェクト設定

ここに画像の説明を入力

于 2016-11-28T17:25:24.233 に答える
1

私はまさにこの目的のために、このオープン ソース プロジェクトを作成しました。私のプロジェクトは、ユーザーが初めてアプリを開いたときや、アップグレード後にアプリを開いたときなど、重要なイベントが発生したときに通知を投稿します (ユーザーがどのバージョンからアップグレードしたかについての情報を完備しています)。ソースは簡単で、理解しやすいはずです。ご質問/ご要望がありましたらお知らせください。

私も最近、それについてのブログ記事を書きました。

于 2013-06-03T02:09:46.193 に答える