जवाबों:
आप एक साथ एक शब्दकोश के रूप में अपने Info.plist पढ़ सकते हैं
[[NSBundle mainBundle] infoDictionary]
और आप आसानी से CFBundleVersionउस तरह से संस्करण को प्राप्त कर सकते हैं ।
अंत में, आप के साथ संस्करण प्राप्त कर सकते हैं
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSString* version = [infoDict objectForKey:@"CFBundleVersion"];
objectForInfoDictionaryKey:इसके बजाय उपयोग करना चाह सकते हैं , क्योंकि यह उपलब्ध होने पर स्थानीय मान लौटाता है:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]
CFBundleVersionबनाया गया है और संस्करण है repurposed किया गया है CFBundleShortVersionString।
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; NSString *build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; self.versionLabel.text = [NSString stringWithFormat:@"%@.%@", version, build];
स्विफ्ट उपयोगकर्ताओं के लिए:
if let version = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") {
print("version is : \(version)")
}
Swift3 उपयोगकर्ताओं के लिए:
if let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") {
print("version is : \(version)")
}
मुझे पता है कि खोज और उत्तर के बाद से कुछ समय बीत चुका है।
IOS8 के बाद से स्वीकृत उत्तर काम नहीं कर सकता है।
अब यह करने का नया तरीका है:
NSString *version = (__bridge id)CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), kCFBundleVersionKey);
अब iOS 8 में दोनों फील्ड जरूरी हैं। पहले यह बिना काम करता है CFBundleShortVersionString। लेकिन अब ऐप स्टोर में किसी भी ऐप को सबमिट करने के लिए यह एक आवश्यक प्लिस्ट फ़ील्ड है। और kCFBundleVersionKeyहर नए बिल्ड को अपलोड करने के लिए तुलना की जाती है, जो वृद्धिशील क्रम में होना चाहिए। विशेष रूप से TestFlight के लिए बनाता है। मैं इसे इस तरह से करता हूं,
NSString * version = nil;
version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
if (!version) {
version = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
}