如何通过终端命令获取iOS应用安装包的构建版本号?
iOS平台通过终端获取应用构建版本号的实现方法
注意:非越狱、未开启开发者调试模式的普通iOS设备受系统沙箱权限限制,没有和Android平台adb完全对等的通用命令可直接读取设备上任意已安装第三方应用的版本信息,以下是不同场景下的可行方案:
场景1:查询本地存储的IPA安装包版本(无需连接设备)
这是最常用的场景,macOS系统自带工具即可完成,不需要额外安装依赖,直接读取IPA包内的配置文件获取版本信息:
- 对外发布版本号(对应Android的versionName)对应配置字段
CFBundleShortVersionString - 内部构建版本号(对应Android的versionCode)对应配置字段
CFBundleVersion - 可直接在终端执行以下命令,替换命令中的IPA文件路径即可:
unzip -p 你的应用文件路径.ipa Payload/*.app/Info.plist > /tmp/extract_info.plist && /usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" /tmp/extract_info.plist && /usr/libexec/PlistBuddy -c "Print :CFBundleVersion" /tmp/extract_info.plist
命令执行后会依次输出应用的发布版本号、构建版本号。
场景2:查询已越狱iOS设备上的已安装应用版本
如果设备已经完成越狱,可通过SSH连接到设备终端,直接遍历应用安装目录读取配置文件获取版本,执行命令如下:
# 替换为目标应用的Bundle ID app_plist_path=$(find /var/containers/Bundle/Application/ -name "Info.plist" -path "*.app/*" | xargs grep -l "目标应用BundleID" | head -n 1) /usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "$app_plist_path" /usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "$app_plist_path"
场景3:查询已信任的开发调试设备上的应用版本
如果是已经和Xcode配对、开启了开发者模式的调试设备,可先通过Homebrew安装ideviceinstaller工具,再执行命令查询连接设备上的应用版本:
- 安装工具命令:
brew install ideviceinstaller - 查询版本命令(替换为目标应用的Bundle ID):
ideviceinstaller -l | grep 目标应用BundleID
命令输出结果会直接展示匹配应用的名称、Bundle ID、发布版本号、构建版本号。
Android平台获取版本号参考命令:
adb shell dumpsys package package_name | grep versionName
内容的提问来源于stack exchange,提问作者Rakesh Karkare
相关产品推荐
相关产品推荐

