如何从IPA中找到iPhone应用程序的版本号?
我们正在尝试一种为我们的应用指定版本号的新方法。我希望能够检查我们正在构建的IPA是否有我们想要的版本号。如何从IPA中获取版本号如何从IPA中找到iPhone应用程序的版本号?,iphone,ios,versioning,Iphone,Ios,Versioning,我们正在尝试一种为我们的应用指定版本号的新方法。我希望能够检查我们正在构建的IPA是否有我们想要的版本号。如何从IPA中获取版本号 注意-我不是在问如何从应用程序内部的代码中找到它;我打开了一个终端,生成了IPA文件,我想知道在IPA文件中查找什么。它在IPA/payload/NAME.app/Info.plist中。从终端执行以下操作 //Unzip the file unzip YourIPAFile.ipa //Open payload folder c
注意-我不是在问如何从应用程序内部的代码中找到它;我打开了一个终端,生成了IPA文件,我想知道在IPA文件中查找什么。它在IPA/payload/NAME.app/Info.plist中。从终端执行以下操作
//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下找到该版本
unzip YourIPAFile.ipa
/usr/libexec/PlistBuddy -c print Payload/NAME.app/Info.plist | grep CFBundleVersion
CbundLeverVersion=1.0/usr/libexec/PlistBuddy -c print Payload/NAME.app/Info.plist | grep CFBundleShortVersionString
CbundleShortVersionString=1.0有比PlistBuddy和grep更好的方法:
unzip -d ipa YourIPA.ipa
defaults read `pwd`/ipa/Payload/YourAppName.app/Info CFBundleVersion
rm -rf ipa
值得注意的是,使用默认读取需要应用程序的绝对路径。我更喜欢使用ProvisionQL。
它提供了IPA文件的快速查看(用两个手指触摸IPA文件并在快速查看中单击)。它显示的信息包括:名称、版本、捆绑id、设备系列、资源调配信息、证书、分发配置文件、权利等。如果您可以在QuickLook中查看详细信息,则更简单、更好 现在有一个插件可以快速查看,它提供了许多详细信息 你一定已经安装了
链接到quicklook插件。您可以使用tar的功能提取单个文件,然后将结果流式传输到标准输出,并将其传输到plutil命令(pl=>属性列表),而无需写入和删除文件。额外的好处是,通过管道将其传递给grep,查找字符串“Version”,该字符串只显示找到的模式后的一行 在下面的命令中,将YourIPAFile.ipa替换为要检查的ipa文件的名称,将YourAppName.app替换为Plist.info文件中的捆绑可执行文件的名称。对于我来说,使用flatter,这两个值是相同的“Runner”,但它实际上是tar文件中info.plist文件所在的目录
tar-zxvOf yourpafile.ipa Payload/yourpappname.app/Info.plist | plutil-convert xml1-r-o----| grep-a1版本 输出为:
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>
x有效负载/YourAppName.app/Info.plist
CbundleInfo字典版本
6
--
CbundleShortVersionString
1.0.5
--
循环流化床锅炉
1.
--
数据平台版本
14
--
最小渗透压
9
或者更切题地说:
tar-zxvOf yourpafile.ipa Payload/yourpappname.app/Info.plist | plutil-convert xml1-r-o----| grep-A 1 CFBundleVersion
x有效负载/YourAppName.app/Info.plist
循环流化床锅炉
1.
或
tar-zxvOf yourpafile.ipa Payload/yourpappname.app/Info.plist | plutil-convert xml1-r-o----| grep-A 1 CFBundleShortVersion
x有效负载/YourAppName.app/Info.plist
CbundleShortVersionString
1.0.5
就是这样。你可以像解压zip文件一样解压ipa文件。以后尝试重新解压然后再使用它是不明智的,我认为它不会是代码签名的,所以不会在设备上运行。你可以在ipa文件的副本上这样做。是的,我只是说,不用麻烦重新压缩了哈哈哈。我能用这些命令把它写进一个工具中吗?工具只是检查一下最小版本吗?tar-zxvOf YourIPAFile.ipa Payload/YourAppName.app/Info.plist | plutil-convert xml1-r-o----| grep-a1 CFBundleShortVersiontar-zxvOf YourIPAFile.ipa Payload/YourAppName.app/Info.plist | plutil-convertxml1-r-o----| grep-a1是最好的答案。对于那些不确定你的appname.app是什么的人,只需将你的.ipa重命名为.zip,然后解压缩即可。负载中的任何内容都是应用程序的名称
x Payload/YourAppName.app/Info.plist
<key>CFBundleVersion</key>
<string>1</string>
x Payload/YourAppName.app/Info.plist
<key>CFBundleShortVersionString</key>
<string>1.0.5</string>