遍历目录中的SDK是否支持模拟器

2018-11-19  本文已影响9人  吕木

遍历目录中的所有xxx.framework 、xxx.a文件,并通过lipo -info命令检查:是否支持模拟器(x86_64)。不支持,则打印出来。

#!/usr/bin/python
# -*- coding: UTF-8 -*-


# SDK 有两种形式:xxx.framework 、xxx.a
# xxx.framework : lipo -info xxx.framework/xxx
# xxx.a : lipo -info xxx.a
# 输出一个文本文件
# 列名:文件名    指令集    是否支持64位模拟器(x86_64)


# 访问Mac os 系统文件路径
import os

# 匹配的文件类型: 'framework'、'a'

def main():
    print '程序入口';

    str = raw_input("请输入需要检查的目录:")
    checkPath = str.replace(' ','');

    # s =os.system("echo '方法1'")
    print('文件名    是否支持64位模拟器(x86_64)    指令集')
    detect_walk(checkPath);

    # aPath = "/Users/niuyulong/Desktop/JDJR/jdjrMobile_IOS/Pods/JRThirdPlatform/JRThirdPlatform/Classes/JDPayJR/JDPay.framework/JDPay"
    # checkSDKWithPath(aPath)
    print '程序执行结束';
    pass


def detect_walk(dir_path):

    for root, dirs, files in os.walk(dir_path):

        for dir in dirs:
            suffix = os.path.splitext(dir)[1]

            if suffix=='.framework':
                
                filePath = os.path.join(root,dir) + "/" + dir.split('.')[0]
                checkSDKWithPath(filePath)

        for filename in files:
            suffix = os.path.splitext(filename)[1]
            if suffix == '.a':
                filePath = os.path.join(root,filename)
                checkSDKWithPath(filePath)


def checkSDKWithPath(path):
    # 文件名
    filename = path.split("/")[-1];
    # 指令集
    codeTypes = ""
    # 是否支持模拟器
    supportMac = "支持"

    cmd_lipo = "lipo -info "
    p = os.popen(cmd_lipo + path, 'r')
    log = p.read()
    p.close()

    if log.find('are:') != -1:
        list = log.split('are:')
        if list.count > 1:
            codeTypes = list[-1].replace('\n','')
            isSupport = codeTypes.find('x86_64');
            if isSupport == -1:
                supportMac = "不支持"
    elif log.find('is architecture:') != -1:
        list = log.split('is architecture:')
        if list.count > 1:
            codeTypes = list[-1].replace('\n','')
            isSupport = codeTypes.find('x86_64');
            if isSupport == -1:
                supportMac = "不支持"
    else:
        supportMac = '位置错误'

    if supportMac == "不支持":
        print filename + '\t' + supportMac + '\t[' + codeTypes + ']'

    pass


if __name__ == '__main__':
    main()

下载文件

上一篇下一篇

猜你喜欢

热点阅读