如何从ipa解析Info.plist文件

时间:2014-11-21 02:53:04

标签: ios parsing ipa

我想编写一个程序来获取应用详情,例如来自ipa文件的应用程序名称,版本,包标识符。但是这个文件不是纯文本文件,它以某种方式编码,我的程序无法解析它。

有没有办法解码这个文件?

更新

为了澄清这个问题,我正在编写一个python程序来从我从Xcode导出的ipa文件中获取应用程序详细信息。

6 个答案:

答案 0 :(得分:3)

对于那些没有Apple Developer登录的人,这里是接受答案的link中的两个答案(你必须登录才能看到它):

  • 使用PlistBuddy
    • /usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" yourBinaryOrXmlPlist.plist
  • 还有许多其他方法可以解析二进制plist文件。例如,我正在使用Python,并且有一个名为biplist的库,它完全用于读取和写入二进制plist文件,并支持Python 2和3.此外,Python 3.4中的'plistlib'支持使用new的二进制plist操作的API。

答案 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/

  1. 从file.ipa重命名-> file.zip
  2. 解压缩file.zip
  3. 转到有效载荷文件夹
  4. 右键单击应用程序文件->显示软件包内容
  5. 请参阅Info.plist

答案 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