Saya ingin membaca info versi bundel dari Info.plist ke dalam kode saya, lebih disukai sebagai string. Bagaimana saya bisa melakukan ini?
iphone
objective-c
cocoa-touch
xcode
info.plist
John Smith
sumber
sumber
objectForInfoDictionaryKey:
sebagai gantinya, karena mengembalikan nilai yang dilokalkan jika tersedia:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]
CFBundleVersion
telah diubah fungsinya menjadi Build dan VersionCFBundleShortVersionString
.NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
NSString *build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
self.versionLabel.text = [NSString stringWithFormat:@"%@.%@", version, build];
untuk pengguna Swift:
if let version = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") { print("version is : \(version)") }
untuk pengguna Swift3:
if let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") { print("version is : \(version)") }
sumber
Saya tahu bahwa beberapa waktu telah berlalu sejak pencarian dan jawabannya.
Sejak iOS8, jawaban yang diterima mungkin tidak berfungsi.
Ini adalah cara baru untuk melakukannya sekarang:
NSString *version = (__bridge id)CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), kCFBundleVersionKey);
sumber
Sekarang di iOS 8, kedua bidang tersebut diperlukan. Sebelumnya, ini berfungsi tanpa ekstensi
CFBundleShortVersionString
. Tapi sekarang ini adalah bidang plist wajib untuk mengirimkan aplikasi apa pun di toko aplikasi. DankCFBundleVersionKey
dibandingkan untuk mengupload setiap build baru, yang harus dalam urutan tambahan. Khusus untuk build TestFlight. Saya melakukannya dengan cara ini,NSString * version = nil; version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; if (!version) { version = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey]; }
sumber
Cepat 3:
let appBuildNumber = Bundle.main.infoDictionary!["CFBundleVersion"] as! String let appVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String
sumber