访问任何应用程序包标识符

Access any apps bundle identifier

对于我的应用程序,我让用户为其计算机的特定应用程序选择路径。从该路径(即 /Applications/Itunes.app)我想获取包标识符,并从中创建一个 NSRunningApplication 实例([NSRunningApplication runningApplicationsWithBundleIdentifier:(nonnull NSString *)]; 我将如何获取此包标识符?

使用核心基础功能CFBundleGetIdentifier

使用 CFURLCreateFromFileSystemRepresentation 创建从路径到包的包引用并调用 CFBundleCreate

url = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, bundlePath, bundleLength, true);
bundle = CFBundleCreate(kCFAllocatorDefault, url);

CFStringRef identifier = CFBundleGetIdentifier(bundle)