以编程方式获取有关mac OS X应用程序的信息

时间:2015-08-02 14:51:20

标签: objective-c macos cocoa objective-c++

我正在寻找可获取每个应用程序的以下信息的cocoa框架:供应商名称,版本和完整的应用程序名称。

或者,我可以使用包含此信息的文件...我已尝试在/Application/(name).app / ...中搜索它但我无法在特定的地方找到它所有应用程序的位置相同。

1 个答案:

答案 0 :(得分:1)

它应位于info.plist下的CFBundleName

如果你进入<application>/contents/info.plist,你会在那里找到它

来自 documentation

  

CFBundleName(String - iOS,OS X)标识的短名称   束。该名称长度应小于16个字符   适合在菜单栏和应用程序的信息窗口中显示。您   可以在适当的InfoPlist.strings文件中包含此密钥   .lproj子目录为其提供本地化值。如果你   本地化此密钥,您还应该包括密钥   CFBundleDisplayName。

这是从所选应用程序的Info.plist获取版本的示例代码:

string GetAppVersion(string app)
{
    NSString *vlcFilePath = [NSString stringWithCString:app.c_str()];
    NSDictionary* infoDict = [[NSBundle bundleWithPath:vlcFilePath] infoDictionary];
    NSString* version = [infoDict objectForKey:@"CFBundleVersion"];
}
...
...
GetAppVersion("/Applications/Notes.app").c_str());