def check_ipa(ipa_path):
    results = {}
    pid = app_utils.get_digest_str()

    print('1.', "*" * 10, 'get_file_md5')
    results['md5'] = get_file_md5(ipa_path)

    print('2.', '*' * 10, 'check_app_info_and_provision')
    infos = check_app_info_and_provision(ipa_path)
    pprint(infos)
    for key in infos.keys():
        print(key)
        results[key] = infos[key]

    print('3', '*' * 10, 'check_private_api')
    app = get_executable_path(ipa_path, pid)
    if not app:
        return False

    methods_in_app, methods_not_in_app, private_framework = check_private_api(
        app, pid)
    print('查看下结构字段')
    print(methods_not_in_app)
    results['private_apis'] = methods_in_app
    results['private_frameworks'] = list(private_framework)

    print('4', '*' * 10, 'check_architecture:')
    arcs = chech_architectures(app)
    results['arcs'] = arcs
    if len(arcs) < 2:
        results['error'].append({
            'label': 'Architecture:',
            'description': 'app may be not support 64-bit'
        })

    print('5', '*' * 10, 'check_codesign_info:')

    codesigin = codesign_utils.codesignapp(app)
    results['codesign'] = codesigin

    print("6", '*' * 10, 'remove tmp file')
    cur_dir = os.getcwd()
    dest_tmp = os.path.join(cur_dir, 'tmp/' + pid)
    if os.path.exists(dest_tmp):
        shutil.rmtree(dest_tmp)

    return results
Ejemplo n.º 2
0
def check_codesign(app):
    return codesign_utils.codesignapp(app)
def check_codesign(app):
    return codesign_utils.codesignapp(app)