从iOS8上的Bundle ID获取应用程序的名称

时间:2015-02-14 11:19:43

标签: ios objective-c

我正在尝试使用此代码:

NSString *appName = [[NSBundle bundleWithIdentifier:item] objectForInfoDictionaryKey:@"CFBundleExecutable"];

要从其Bundle Identifier获取应用程序的名称,但是对于所有非库存应用程序,此方法返回nil。我试图找到解决这个问题的方法无济于事。如何从iOS 8中的软件包ID获取应用程序的名称?

编辑:为了澄清,我想将此用于我自己以外的应用程序。

3 个答案:

答案 0 :(得分:3)

试试这个

NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleExecutable"];

或者如果您想更正确一点,请参考[NSBundle bundleForClass:[self class]]

但是,您最好不要访问 CFBundleExecutable 键,而是访问 CFBundleName 键,这是您应用图标下的名称。

答案 1 :(得分:2)

NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];

答案 2 :(得分:0)

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
NSBundle *bundle = [NSBundle bundleWithIdentifier:bundleIdentifier];
NSString *appName = [bundle objectForInfoDictionaryKey:@"CFBundleExecutable"];
NSLog(@"%@", appName);