我们获取项目名是通过什么获取的?我猜猜看,应该都是这样:
NSDictionary *infoPlist = [[NSBundle mainBundle] infoDictionary];
// app名称
NSString *appName = [infoPlist objectForKey:@"CFBundleDisplayName"];
// app版本
NSString *appVersion = [infoPlist objectForKey:@"CFBundleShortVersionString"];
// app icon
NSString *icon = [[infoPlist valueForKeyPath:@"CFBundleIcons.CFBundlePrimaryIcon.CFBundleIconFiles"] lastObject];
UIImage *realIconImage = [UIImage imageNamed:icon];
//app build
NSString *appBuild = [infoDictionary objectForKey:@"CFBundleVersion"];
通过以上方法不仅可以获取app的name,还有version,build,icon等信息。以上方法使用比较广泛,可是不知道从什么时候开始,突然发现获取到的appName为空,看了下plist文件才发现以前默认创建的一项没有了:
Bundle display name ${PRODUCT_NAME}
博主翻了一下以前的项目,发现14年的项目还是默认会创建这一项的,但是在15年8月创建的项目就没有了。如果你希望依然可以使用这个简便的的方法的时候必须要手动把这一项加入到你的plist文件中。
本文介绍了如何通过NSBundle的infoDictionary来获取iOS应用的名称、版本、构建号及图标信息,并指出自2015年后创建的项目可能需要手动添加Bundledisplayname${PRODUCT_NAME}
1万+

被折叠的 条评论
为什么被折叠?



