我们正在尝试一种为我们的应用程序指定版本号的新方法。我希望能够检查我们正在构建的 IPA 是否具有我们想要的版本号。如何从 IPA 中获取版本号?
注意 - 我不是要从应用程序内的代码中找到它;我打开了一个终端并构建了 IPA 文件,我想知道要在 IPA 文件中查找什么。
我们正在尝试一种为我们的应用程序指定版本号的新方法。我希望能够检查我们正在构建的 IPA 是否具有我们想要的版本号。如何从 IPA 中获取版本号?
注意 - 我不是要从应用程序内的代码中找到它;我打开了一个终端并构建了 IPA 文件,我想知道要在 IPA 文件中查找什么。
从您的终端执行以下操作
//Unzip the file
unzip YourIPAFile.ipa
//Open payload folder
cd Payload
//Open your .app file
cd yourApp.app
//Open the plist file
open Info.plist
您可以在 Bundle version key 下找到版本
有比 PlistBuddy 和 grep 更好的方法:
unzip -d unzipped-ipa MyApp.ipa
defaults read "$(pwd)/MyApp.app/Contents/Info.plist" CFBundleVersion
rm -rf unzipped-ipa
值得注意的是 usingdefaults read
需要一个应用程序的绝对路径。
解压你的ipa文件
unzip YourIPAFile.ipa
以下 plistBuddy 命令打印 Bundle Version
/usr/libexec/PlistBuddy -c print Payload/NAME.app/Info.plist | grep CFBundleVersion
CFBundleVersion = 1.0
以下 plistBuddy 命令打印 BundleVersion 字符串
/usr/libexec/PlistBuddy -c print Payload/NAME.app/Info.plist | grep CFBundleShortVersionString
CFBundleShortVersionString = 1.0
它在 IPA/payload/NAME.app/Info.plist
我更喜欢使用 ProvisionQL。 https://github.com/ealeksandrov/ProvisionQL 它提供了 IPA 文件的快速查看(用两根手指触摸 IPA 文件并单击 Quick Look)。它显示如下信息:名称、版本、捆绑包 ID、设备系列、配置信息、证书、分发配置文件、权利等。
您可以使用 tar 的功能提取单个文件,然后将结果流式传输到标准输出并将其通过管道传输到 plutil 命令(pl=> 属性列表),而无需写入和删除文件。额外的奖励,将其传递给 grep,寻找字符串“Version”,仅显示超过找到的模式的一行。
在下面的命令中,将 YourIPAFile.ipa 替换为您要检查的 ipa 文件的名称,并将 YourAppName.app 替换为 Plist.info 文件中的捆绑可执行文件的名称。对我来说,使用颤振,这两个值是相同的“Runner”,但它本质上是 tar 文件中 info.plist 文件所在的目录。
tar -zxvOf YourIPAFile.ipa Payload/YourAppName.app/Info.plist | plutil -convert xml1 -r -o - -- - | grep -A 1 个版本
输出是:
x Payload/YourAppName.app/Info.plist
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
--
<key>CFBundleShortVersionString</key>
<string>1.0.5</string>
--
<key>CFBundleVersion</key>
<string>1</string>
--
<key>DTPlatformVersion</key>
<string>14.0</string>
--
<key>MinimumOSVersion</key>
<string>9.0</string>
或者更重要的是:
tar -zxvOf YourIPAFile.ipa Payload/YourAppName.app/Info.plist | plutil -convert xml1 -r -o - -- - | grep -A 1 CFBundleVersion
x Payload/YourAppName.app/Info.plist
<key>CFBundleVersion</key>
<string>1</string>
或者
tar -zxvOf YourIPAFile.ipa Payload/YourAppName.app/Info.plist | plutil -convert xml1 -r -o - -- - | grep -A 1 CFBundleShortVersion
x Payload/YourAppName.app/Info.plist
<key>CFBundleShortVersionString</key>
<string>1.0.5</string>