青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

路漫漫,長(zhǎng)修遠(yuǎn),我們不能沒有錢
隨筆 - 173, 文章 - 0, 評(píng)論 - 257, 引用 - 0
數(shù)據(jù)加載中……

解析 ipa 文件版本號(hào)等信息(基于 python)

python 3.x
 1 #!/usr/bin/python
 2 # Filename: ipaInfo3.py
 3 # author khan.lau
 4 
 5 # python 3.x
 6 
 7 import zipfile, plistlib, sys, re
 8 
 9 
10 def analyze_ipa_with_plistlib(ipa_path):
11     ipa_file = zipfile.ZipFile(ipa_path)
12     plist_path = find_plist_path(ipa_file)
13     plist_data = ipa_file.read(plist_path)
14     plist_root = plistlib.loads(plist_data)
15     print_ipa_info(plist_root)
16 
17 def print_ipa_info(plist_root):
18     print ('Display Name: %s' % plist_root['CFBundleName'])
19     print ('Bundle Identifier: %s' % plist_root['CFBundleIdentifier'])
20     print ('Version: %s' % plist_root['CFBundleShortVersionString'])
21 
22 def find_plist_path(zip_file):
23     name_list = zip_file.namelist()
24     # print name_list
25     pattern = re.compile(r'Payload/[^/]*.app/Info.plist')
26     for path in name_list:
27         m = pattern.match(path)
28         if m is not None:
29             return m.group()
30 
31 
32 
33 if __name__ == '__main__':
34     args = sys.argv[1:]
35     if len(args) < 1:
36         print ('Usage: python ipaInfo3.py /path/to/ipa')
37         exit(0);
38  
39     ipa_path = args[0]
40     analyze_ipa_with_plistlib(ipa_path)
41 


python 2.7.x
 1 #!/usr/bin/python
 2 # Filename: ipaInfo2.py
 3 # author khan.lau
 4 
 5 # python 2.7.5
 6 # project need third_party lib biplist, please run 'sudo pip install biplist'
 7 
 8 import zipfile, biplist, sys, re
 9 
10 
11 def analyze_ipa_with_plistlib(ipa_path):
12     ipa_file = zipfile.ZipFile(ipa_path)
13     plist_path = find_plist_path(ipa_file)
14     plist_data = ipa_file.read(plist_path)
15     plist_root = biplist.readPlistFromString(plist_data)
16     print_ipa_info(plist_root)
17 
18 def print_ipa_info(plist_root):
19     print ('Display Name: %s' % plist_root['CFBundleName'])
20     print ('Bundle Identifier: %s' % plist_root['CFBundleIdentifier'])
21     print ('Version: %s' % plist_root['CFBundleShortVersionString'])
22 
23 def find_plist_path(zip_file):
24     name_list = zip_file.namelist()
25     # print name_list
26     pattern = re.compile(r'Payload/[^/]*.app/Info.plist')
27     for path in name_list:
28         m = pattern.match(path)
29         if m is not None:
30             return m.group()
31 
32 
33 
34 if __name__ == '__main__':
35     args = sys.argv[1:]
36     if len(args) < 1:
37         print ('Usage: python ipaInfo2.py /path/to/ipa')
38         exit(0);
39  
40     ipa_path = args[0]
41     analyze_ipa_with_plistlib(ipa_path)


python2.7 不包含 plistlib, 所以需要引入第三方庫(kù) biplist,  使用 easy_install 或 pip 安裝庫(kù)即可, biplist 支持 data 解析, 相對(duì)于 plistlib 而已, 只需改動(dòng)極少代碼, 所以采用他

posted on 2015-01-04 13:10 Khan 閱讀(4308) 評(píng)論(2)  編輯 收藏 引用 所屬分類: 跨平臺(tái)開發(fā)周邊技術(shù)

評(píng)論

# re: 解析 ipa 文件版本號(hào)等信息(基于 python)  回復(fù)  更多評(píng)論   

ipa_path 怎么寫
2015-03-04 10:58 | jin

# re: 解析 ipa 文件版本號(hào)等信息(基于 python)  回復(fù)  更多評(píng)論   

@jin
Usage: ./ipaInfo2.py /path/to/ipa'
2015-03-09 12:23 | khan.lau
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久综合给合久久狠狠色| 国产亚洲精品久久久久久| 日韩一区二区福利| 欧美福利网址| 欧美一区二区精品| 国产精品视频久久一区| 亚洲激情女人| 噜噜噜噜噜久久久久久91| 久久精品一本| 久久久国产精品一区| 国产精品美女www爽爽爽视频| 国产精品chinese| 欧美日韩国产在线| 亚洲高清自拍| 免费精品视频| 亚洲日本免费| 久久噜噜噜精品国产亚洲综合| 久久婷婷成人综合色| 国产欧美一区二区精品婷婷 | 久久久久久久综合日本| 久久米奇亚洲| 欧美一区视频| 精品成人久久| 亚洲欧美久久久| 国产一区二区三区电影在线观看| 亚洲一区观看| 亚洲人被黑人高潮完整版| 欧美在线短视频| 亚洲视频观看| 欧美在线视频在线播放完整版免费观看| 久久国产精彩视频| 欧美激情综合色| 亚洲三级电影在线观看| 欧美天堂亚洲电影院在线观看 | 欧美国产视频在线观看| 久久久亚洲精品一区二区三区| 欧美日韩国产欧美日美国产精品| 欧美日韩国产在线播放| 一区二区三区四区五区视频 | 久久精品视频网| 欧美在线影院| 亚洲国产精品福利| 亚洲精品乱码久久久久| 欧美视频在线免费看| 亚洲电影有码| 亚洲精品一区在线| 国产日韩欧美在线观看| 欧美一级理论性理论a| 亚洲欧美日韩中文播放| 午夜精品久久久久久久| 先锋资源久久| 亚洲人精品午夜在线观看| 一本色道**综合亚洲精品蜜桃冫| 久久久久久久欧美精品| 亚洲激情在线观看| 国产精品视频网站| 99视频精品全部免费在线| 一本色道久久88精品综合| 国产一区二区久久精品| 亚洲欧洲日夜超级视频| 国产精品一区久久久久| 亚洲国产精品一区二区第四页av | 午夜精品一区二区在线观看| 精品电影在线观看| 亚洲色图综合久久| 最新国产成人在线观看| 亚洲第一在线综合在线| 99精品国产福利在线观看免费| 欧美大尺度在线观看| 亚洲欧美日韩国产中文| 亚洲自拍另类| 亚洲精品在线视频| 亚洲国产日韩综合一区| 久久精品一区二区三区不卡牛牛| 麻豆国产va免费精品高清在线| 亚洲午夜激情| 亚洲三级视频在线观看| 久久精品国产精品亚洲| 午夜免费电影一区在线观看| 欧美激情亚洲综合一区| 欧美成人精品在线观看| 国产最新精品精品你懂的| 麻豆精品国产91久久久久久| 国产精品日韩精品欧美精品| 日韩午夜在线| 午夜免费电影一区在线观看| 欧美在线日韩在线| 欧美一区日韩一区| 欧美在线啊v| 久久成人在线| 国产日韩精品一区二区三区| 性做久久久久久免费观看欧美| 亚洲视频电影图片偷拍一区| 亚洲人成网站在线播| 欧美一区二区福利在线| 一区二区三区四区蜜桃| 亚洲一级在线观看| 欧美三级网址| 这里只有精品丝袜| 午夜欧美不卡精品aaaaa| 国产精品爱啪在线线免费观看 | 羞羞色国产精品| 欧美日精品一区视频| 久久久噜久噜久久综合| 国产美女扒开尿口久久久| 美腿丝袜亚洲色图| 亚洲一本视频| 亚洲综合国产激情另类一区| 欧美激情亚洲激情| 亚洲国产欧美日韩| 亚洲精品一区在线观看香蕉| 欧美护士18xxxxhd| 一区二区三区国产精品| 国内精品久久久久影院 日本资源| 久久久久久久网| 久久久亚洲影院你懂的| 国产女主播一区二区| 欧美一区二区三区免费观看| 久久综合色8888| 亚洲乱码国产乱码精品精可以看| 亚洲欧美激情四射在线日 | 午夜一区二区三区不卡视频| 午夜久久黄色| 国产一区二区三区久久精品| 亚洲欧美激情视频| 国产日产亚洲精品| 欧美va亚洲va国产综合| 一区二区三区成人| 一区二区三区高清视频在线观看| 性欧美video另类hd性玩具| 久久久久久久性| 91久久精品国产91久久| 亚洲缚视频在线观看| 欧美色欧美亚洲另类七区| 欧美成人日本| 亚洲小说春色综合另类电影| 国产欧美日韩综合| 欧美福利视频一区| 欧美影院一区| 99精品视频免费观看视频| 亚洲精品在线视频| 国产热re99久久6国产精品| 你懂的成人av| 久久国产精品免费一区| 久久精品亚洲一区| 亚洲美女黄色| 国产亚洲激情| 小黄鸭精品密入口导航| 国产日韩在线看片| 欧美大香线蕉线伊人久久国产精品| 欧美aⅴ一区二区三区视频| 韩国自拍一区| 国产精品嫩草99av在线| 欧美夫妇交换俱乐部在线观看| 亚洲人体大胆视频| 亚洲午夜在线视频| 亚洲欧洲综合另类在线| 久久综合色88| 久久av最新网址| 亚洲一区激情| 妖精视频成人观看www| 亚洲大片av| 黄色综合网站| 国产综合久久久久久| 久久久久久亚洲综合影院红桃| 久久久五月天| 性感少妇一区| 午夜精品久久久久99热蜜桃导演| 国产精品视频观看| 欧美日本视频在线| 欧美成人在线网站| 国产精品99久久久久久久vr | 欧美影院在线播放| 91久久国产综合久久| 亚洲黄色在线视频| 国产日韩欧美一区二区| 欧美性色aⅴ视频一区日韩精品| 中文亚洲视频在线| 亚洲精品乱码| 日韩特黄影片| 99re国产精品| 亚洲图片在线| 亚洲手机在线| 午夜精品久久久久久久久久久久久| 老司机精品导航| 亚洲精品色图| 亚洲日本理论电影| 亚洲精品在线免费观看视频| 亚洲精品欧美精品| 欧美天堂亚洲电影院在线播放 | 久久久www成人免费毛片麻豆| 欧美激情二区三区| 蜜桃av一区二区| 欧美激情一二三区| 欧美美女bb生活片| 欧美大片在线看| 亚洲综合社区| 欧美一区二区三区在线看| 久久av二区| 亚洲一区图片|