目标C:如何获取另一个应用程序的包标识符

时间:2011-01-09 00:33:54

标签: objective-c bundle identifier

我想获取应用程序的包标识符,给定它的路径。

例如:

NSString* vlcFilePath =  @"/Applications/VLC.app"

我知道如果它是活动应用程序,如何使用NSWorkspace获取包标识符,但在这种情况下,它不一定是活动应用程序。

2 个答案:

答案 0 :(得分:12)

NSBundle有bundleIdentifier方法。如果应用程序尚未加载/运行,则不会运行或加载应用程序:

NSString *vlcFilePath = @"/Applications/VLC.app";

NSBundle *bundle = [NSBundle bundleWithPath:vlcFilePath];

NSLog (@"%@", [bundle bundleIdentifier]);

答案 1 :(得分:-2)

打开应用程序包的plist文件并从那里读取它:

NSDictionary *plistInfo = [NSDictionary dictionaryWithContentsOfFile:[vlcPath stringByAppendingPathComponent:@"Contents/Info.plist"]];

NSLog(@"VLC bundle identifier = %@", [plistInfo objectForKey:@"CFBundleIdentifier"]);