目录

应用名称和 Bundle ID 是两回事。例如,App Store 的 Bundle ID 是 com.apple.AppStore。脚本或配置描述文件要求填写应用标识符时,需要的就是这个值。

它保存在应用的 Info.plist 中,对应的键是 CFBundleIdentifier。可以在 Finder 里查看,也可以用 macOS 自带的命令直接读取,不需要启动应用。

2026 年 9 月 7 日更新:更换了截图,并在 macOS 27 测试版上验证了下方命令。Finder 的操作步骤也与 Apple 当前的部署指南一致。

在 Finder 中查看

找到应用,按住 Control 点击它,选择显示包内容(Show Package Contents),再打开 Contents 文件夹,找到 Info.plist。这也是 Apple 文档介绍的方法。

Finder 中选中了 App Store.app 内的 Info.plist,底部显示了应用包路径。

这台 Mac 上,App Store 的 plist 路径是:

/System/Applications/App Store.app/Contents/Info.plist

下载的应用通常在 /Applications,Apple 自带应用也可能位于 /System/Applications。以实际安装位置为准,不要直接套用其他应用的路径。

用文本编辑打开 plist,搜索 CFBundleIdentifier。如果安装了 Xcode,也可以使用它的属性列表编辑器;界面中这个键可能显示为 Bundle identifier。

文本编辑在 App Store 的 Info.plist 中找到了 CFBundleIdentifier,下一行的值为 com.apple.AppStore。

XML 格式的 plist 中,这一项是:

<key>CFBundleIdentifier</key>
<string>com.apple.AppStore</string>

原文有一点需要纠正:plist 不一定是 XML,也可能是二进制格式。如果文本编辑打开后显示乱码,直接用下方的 plutil 读取即可,不必转换或修改应用里的文件。

在终端中读取

只想拿到标识符时,运行这条命令就够了:

/usr/bin/plutil -extract CFBundleIdentifier raw -o - \
  "/System/Applications/App Store.app/Contents/Info.plist"

输出是 com.apple.AppStore。plutil 支持 XML 和二进制 plist,-o - 表示将结果输出到标准输出。

App Store.app 包含空格,所以路径外的引号不能省略。查看其他应用时,替换路径即可。也可以先输入文件名之前的命令,留一个空格,再将 Info.plist 从 Finder 拖入终端,让终端填入路径。

原文使用的 PlistBuddy 现在仍然适用:

/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' \
  "/System/Applications/App Store.app/Contents/Info.plist"

如果旧版 macOS 的 plutil 不支持 raw 输出格式,也可以使用它。当前系统支持的具体选项,可以通过 man plutil 或 man PlistBuddy 查看。

没有结果,或者结果不对?

先检查路径。如果同时安装了正式版和测试版,要读取目标版本内部的 plist。辅助进程、扩展和 framework 也可能有自己的标识符;查应用本身的 ID 时,从最外层的 .app 开始。

Spotlight 也能做快速查询:

/usr/bin/mdls -name kMDItemCFBundleIdentifier -raw \
  "/System/Applications/App Store.app"

这次验证中,它返回了相同的标识符。不过,这个方法依赖 Spotlight 元数据。如果输出 (null),先直接读取 Info.plist,不要据此判断应用没有 Bundle ID。

参考资料