我正在尝试使用此代码:
NSString *appName = [[NSBundle bundleWithIdentifier:item] objectForInfoDictionaryKey:@"CFBundleExecutable"];
要从其Bundle Identifier获取应用程序的名称,但是对于所有非库存应用程序,此方法返回nil。我试图找到解决这个问题的方法无济于事。如何从iOS 8中的软件包ID获取应用程序的名称?
编辑:为了澄清,我想将此用于我自己以外的应用程序。
答案 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);