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

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

路漫漫,長修遠,我們不能沒有錢
隨筆 - 173, 文章 - 0, 評論 - 257, 引用 - 0
數據加載中……

解析 ipa 文件版本號等信息(基于 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, 所以需要引入第三方庫 biplist,  使用 easy_install 或 pip 安裝庫即可, biplist 支持 data 解析, 相對于 plistlib 而已, 只需改動極少代碼, 所以采用他

posted on 2015-01-04 13:10 Khan 閱讀(4312) 評論(2)  編輯 收藏 引用 所屬分類: 跨平臺開發周邊技術

評論

# re: 解析 ipa 文件版本號等信息(基于 python)  回復  更多評論   

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

# re: 解析 ipa 文件版本號等信息(基于 python)  回復  更多評論   

@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>
            欧美高清在线观看| 国产乱码精品一区二区三区av| 亚洲午夜免费福利视频| 国产欧美精品日韩| 在线欧美三区| 亚洲午夜羞羞片| 亚洲欧洲另类国产综合| 欧美亚洲综合另类| 亚洲一本视频| 欧美大胆人体视频| 久热爱精品视频线路一| 国产精品一页| 99re6热只有精品免费观看| 亚洲国产精品va| 香蕉久久一区二区不卡无毒影院| 亚洲午夜精品一区二区| 欧美v国产在线一区二区三区| 久久久久国产精品麻豆ai换脸| 国产精品久久久对白| 亚洲精品一区二区网址| 亚洲经典三级| 蜜臀久久99精品久久久久久9 | 玖玖综合伊人| 国产婷婷一区二区| 亚洲一区区二区| 亚洲视频综合| 欧美性猛交99久久久久99按摩| 亚洲激情社区| 在线观看欧美视频| 久久另类ts人妖一区二区 | 日韩午夜在线视频| 欧美 日韩 国产一区二区在线视频 | 欧美亚洲一级片| 国产精品裸体一区二区三区| 中国成人黄色视屏| 亚洲欧美日韩国产另类专区| 国产精品久久久久久影视| 中文国产一区| 欧美一区二区三区免费观看| 国产精品综合网站| 欧美一级艳片视频免费观看| 久久久999精品| 影音先锋亚洲电影| 免费欧美日韩国产三级电影| 亚洲国产精品视频| 亚洲亚洲精品在线观看| 国产欧美va欧美不卡在线| 午夜在线一区二区| 牛牛精品成人免费视频| 亚洲精品国精品久久99热| 欧美理论在线播放| 亚洲天堂黄色| 久久先锋影音| 亚洲日本欧美日韩高观看| 欧美日韩免费在线观看| 亚洲男人的天堂在线| 久久日韩粉嫩一区二区三区| 亚洲黄页一区| 国产精品剧情在线亚洲| 久久久久.com| 日韩亚洲一区二区| 久久精品一本| 亚洲精选一区二区| 国产免费成人在线视频| 美女被久久久| 亚洲欧美激情视频在线观看一区二区三区| 久色婷婷小香蕉久久| 99国产精品99久久久久久| 国产精品一区二区欧美| 欧美aa在线视频| 亚洲一区二区三区四区五区黄| 免费精品99久久国产综合精品| 一区二区三区高清| 国产一区二区三区av电影| 欧美精品九九| 久久精品视频免费观看| 亚洲色图自拍| 欧美激情中文字幕乱码免费| 午夜精品偷拍| 亚洲免费成人| 永久免费精品影视网站| 国产精品欧美日韩久久| 欧美国产激情| 久久免费少妇高潮久久精品99| 一区二区三区四区五区视频| 欧美国产日韩免费| 久久久久久尹人网香蕉| 亚洲免费视频在线观看| 亚洲国产一区二区a毛片| 国产精品亚洲第一区在线暖暖韩国| 免费亚洲电影在线| 久久国产欧美精品| 亚洲专区在线| 一片黄亚洲嫩模| 亚洲精品乱码久久久久| 欧美成人午夜激情| 久久综合福利| 欧美一区深夜视频| 亚洲一区尤物| 亚洲视频网在线直播| 99xxxx成人网| 亚洲美女色禁图| 亚洲国产精品传媒在线观看| 国外成人在线视频| 国产偷自视频区视频一区二区| 国产精品成人一区二区三区夜夜夜| 欧美高清视频免费观看| 男同欧美伦乱| 欧美成人精品福利| 久久九九电影| 久久久久.com| 久久精品视频一| 久久久夜色精品亚洲| 亚洲欧美亚洲| 午夜激情综合网| 亚洲一区久久| 午夜精品视频一区| 欧美一级电影久久| 欧美一区二区三区免费视频| 香蕉久久精品日日躁夜夜躁| 亚洲综合国产激情另类一区| 亚洲图片欧美午夜| 亚洲一区二区免费视频| 亚洲一区影院| 午夜欧美不卡精品aaaaa| 亚洲在线视频| 欧美在线视频二区| 久久久中精品2020中文| 欧美成人精品一区二区| 美女性感视频久久久| 欧美国产精品中文字幕| 欧美日韩国产色站一区二区三区| 欧美日韩一区在线播放| 国产精品乱码人人做人人爱| 国产字幕视频一区二区| 亚洲激情第一页| 亚洲深夜福利在线| 久久不射2019中文字幕| 美国成人直播| 亚洲激情在线观看| 亚洲一区三区视频在线观看| 久久久精品国产99久久精品芒果| 免播放器亚洲| 国产精品久久久| 黄色成人av网| 亚洲视频狠狠| 久久香蕉国产线看观看av| 最新成人在线| 欧美亚洲在线播放| 欧美激情性爽国产精品17p| 国产精品久久久久毛片大屁完整版 | 久久九九国产精品怡红院| 欧美成人高清视频| 国产精品一二三视频| 亚洲国产一区二区三区高清 | 久久不射网站| 欧美激情1区2区| 亚洲一区www| 美女图片一区二区| 国产精品家庭影院| 黑人中文字幕一区二区三区| 亚洲精品你懂的| 久久久国产精品亚洲一区 | 久久精品91| 欧美日韩在线观看一区二区三区| 国产日韩欧美视频在线| 日韩一区二区久久| 久久综合色8888| 亚洲一区二区三区影院| 欧美大片在线观看| 国产欧美一区二区三区视频| 在线观看国产精品淫| 欧美专区福利在线| 一区二区冒白浆视频| 欧美成人蜜桃| 亚洲二区在线视频| 久久午夜电影| 欧美一级专区| 国产精品美女在线| 亚洲一区二区欧美| 最近中文字幕mv在线一区二区三区四区 | 欧美日韩一区二区精品| 亚洲国产经典视频| 久久婷婷丁香| 午夜精品视频| 国产日韩精品一区二区浪潮av | 伊人男人综合视频网| 欧美一区免费| 亚洲性图久久| 国产精品v日韩精品| 一本色道久久综合精品竹菊 | 国产一区清纯| 欧美一区二区三区久久精品 | 欧美一区二区三区啪啪| 欧美吻胸吃奶大尺度电影| 亚洲精品一级| 亚洲国产日日夜夜| 久久久综合视频| 亚洲国产人成综合网站| 欧美黄色日本|