1

パスを指定して、アプリケーションのバンドル識別子を取得したいと思います。

例えば:

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

アクティブなアプリケーションである場合にバンドル識別子を取得する方法は知ってNSWorkspaceいますが、この場合、必ずしもアクティブなアプリケーションであるとは限りません。

4

2 に答える 2

12

NSBundle にはbundleIdentifierメソッドがあります。まだロード/実行されていない場合、これはアプリケーションを実行またはロードしません。

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

NSBundle *bundle = [NSBundle bundleWithPath:vlcFilePath];

NSLog (@"%@", [bundle bundleIdentifier]);
于 2011-01-09T00:56:30.633 に答える
-2

アプリケーション バンドルの plist ファイルを開き、そこから読み取ります。

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

NSLog(@"VLC bundle identifier = %@", [plistInfo objectForKey:@"CFBundleIdentifier"]);
于 2011-01-09T00:44:36.593 に答える