我想编写一个程序来获取应用详情,例如来自ipa文件的应用程序名称,版本,包标识符。但是这个文件不是纯文本文件,它以某种方式编码,我的程序无法解析它。
有没有办法解码这个文件?
更新
为了澄清这个问题,我正在编写一个python程序来从我从Xcode导出的ipa文件中获取应用程序详细信息。
答案 0 :(得分:3)
对于那些没有Apple Developer登录的人,这里是接受答案的link中的两个答案(你必须登录才能看到它):
PlistBuddy
/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" yourBinaryOrXmlPlist.plist
答案 1 :(得分:1)
我的Python版本: https://gist.github.com/noamtm/a8ddb994df41583b64f8
在我的研究中,棘手的一点是解析二进制plist,因为python的PlistLib无法读取它:
from Foundation import NSData, NSPropertyListSerialization
# Use PyObjC, pre-installed in Apple's Python dist.
def parse_plist(info_plist_string):
data = NSData.dataWithBytes_length_(info_plist_string, len(info_plist_string))
return NSPropertyListSerialization.propertyListWithData_options_format_error_(data, 0, None, None)
答案 2 :(得分:1)
如果您有Macbook,这很容易。
然后遵循以下准则:http://osxdaily.com/2011/04/07/extract-and-explore-an-ios-app-in-mac-os-x/
答案 3 :(得分:0)
从Apple的开发者论坛获得answer:
PlistBuddy正是您所寻找的:
/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" yourBinaryOrXmlPlist.plist
答案 4 :(得分:0)
双击列表将从XCode中打开。
答案 5 :(得分:0)
在 Mac 上,您可以使用 ootb plutil
:
# Convert a binary plist to XML
plutil -convert xml1 info.plist
# Convert XML back to binary
plutil -convert binary1 info.plist
有关详细信息,请参阅 man plutil
。