Цель C: Как получить идентификатор пакета другого приложения - PullRequest
1 голос
/ 09 января 2011

Я хотел бы получить идентификатор пакета приложения, учитывая его путь.

например:

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

Я знаю, как получить идентификатор пакета, используя NSWorkspace, если это активное приложение, но в этом случае это не обязательно активное приложение.

Ответы [ 2 ]

12 голосов
/ 09 января 2011

NSBundle имеет метод bundleIdentifier. Это не будет запускать или загружать приложение, если оно еще не загружено / не работает:

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

NSBundle *bundle = [NSBundle bundleWithPath:vlcFilePath];

NSLog (@"%@", [bundle bundleIdentifier]);
0 голосов
/ 09 января 2011

Откройте plist-файл пакета приложения и прочитайте его оттуда:

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

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