2017-07-18 248 views
1

我以編程方式獲取應用程序版本並獲取應用程序版本的空白值。我也得到0的內部版本號 - kCFBundleVersionKey。Objective-C爲CFBundleShortVersionString獲取空白值 - 應用程序版本

以下是相同的代碼。

NSString * version = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"]; 
NSString * build = [[NSBundle mainBundle] objectForInfoDictionaryKey: (NSString *)kCFBundleVersionKey]; 

我已經在info.plist文件中添加了這兩個值,在Target中添加了General選項卡。

+0

您正在使用哪種Xcode版本? –

+0

我正在使用Xcode版本8.3.3。 我注意到了一件事。這些值在我通過下面的路徑打開的info.plist文件中缺失。 [[NSBundle mainBundle] pathForResource:@「Info」ofType:@「plist」] 當我打開位於上述路徑的plist文件時,這些值丟失,但這些值存在於info,plist文件中在xcode主包和構建設置。 –

回答

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

該值仍然爲空。 –

1

我認爲這是有幫助的,你

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleVersionKey]; 
NSLog(@"Version %@",version); 

OR

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

NSString *version = infoDictionary[@"CFBundleShortVersionString"]; 
NSString *build = infoDictionary[(NSString*)kCFBundleVersionKey]; 
NSString *bundleName = infoDictionary[(NSString *)kCFBundleNameKey]; 
+0

它不工作。我認爲這個問題是別的。我在問題中評論過它。 –

+0

您是否添加了常規 - >身份 - >版本和生成設置此路徑上的值? –

+0

是的。我已經做到了。 –

0

試試這個:

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

這個代碼工作在我的項目越來越版本

+0

我已經使用過。看看這個問題 –