パスを指定して、アプリケーションのバンドル識別子を取得したいと思います。
例えば:
NSString* vlcFilePath = @"/Applications/VLC.app"
アクティブなアプリケーションである場合にバンドル識別子を取得する方法は知ってNSWorkspace
いますが、この場合、必ずしもアクティブなアプリケーションであるとは限りません。
パスを指定して、アプリケーションのバンドル識別子を取得したいと思います。
例えば:
NSString* vlcFilePath = @"/Applications/VLC.app"
アクティブなアプリケーションである場合にバンドル識別子を取得する方法は知ってNSWorkspace
いますが、この場合、必ずしもアクティブなアプリケーションであるとは限りません。
NSBundle にはbundleIdentifier
メソッドがあります。まだロード/実行されていない場合、これはアプリケーションを実行またはロードしません。
NSString *vlcFilePath = @"/Applications/VLC.app";
NSBundle *bundle = [NSBundle bundleWithPath:vlcFilePath];
NSLog (@"%@", [bundle bundleIdentifier]);
アプリケーション バンドルの plist ファイルを開き、そこから読み取ります。
NSDictionary *plistInfo = [NSDictionary dictionaryWithContentsOfFile:[vlcPath stringByAppendingPathComponent:@"Contents/Info.plist"]];
NSLog(@"VLC bundle identifier = %@", [plistInfo objectForKey:@"CFBundleIdentifier"]);