我想获取应用程序的包标识符,给定它的路径。
例如:
NSString* vlcFilePath = @"/Applications/VLC.app"
我知道如果它是活动应用程序,如何使用NSWorkspace
获取包标识符,但在这种情况下,它不一定是活动应用程序。
答案 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"]);