安装某目录下的mobileprovision证书

import os
import re
import shutil
import subprocess
from argparse import ArgumentParser

# mobileprovision system root
provision_root = os.path.join(os.environ["HOME"], "Library/MobileDevice/Provisioning Profiles")

def get_file_path_list(folder_path, pattern):
    output_list = []
    for root, _, files in os.walk(folder_path):
        for file_name in files:
            if file_name.endswith(pattern):
                output_list.append(os.path.join(root, file_name))
    return output_list     

def get_file_name_list(folder_path, pattern):
    output_list = []
    for root, _, files in os.walk(folder_path):
        for file_name in files:
            if file_name.endswith(pattern):
                output_list.append(file_name)
    return output_list  

def is_file_exists(file_path):
    return os.path.isfile(file_path) or os.path.islink(file_path)

def is_dir_exists(dir_path):
    return os.path.isdir(dir_path)

if not is_dir_exists(provision_root):
    os.makedirs(provision_root, mode=0o777, exist_ok=True)

def install_mobile_provision(mobile_provision_path):
    if not is_file_exists(mobile_provision_path):
        print(f"error:mobileprovision not exists:{mobile_provision_path}")
        return
    print(f">>install mobileprovision from:{mobile_provision_path}")
    shellCommod = "grep UUID -A1 -a " + mobile_provision_path + " | grep -io '[-A-Z0-9]\\{36\\}'"
    uuid = subprocess.check_output(shellCommod, shell=True).strip().decode("ascii")
    # with open(mobile_provision_path, "r", encoding="utf-8", errors="ignore") as file:
    #     content = file.read()
    #     uuid = re.search(r"[-A-Z0-9]{36}", content).group()
    print(f">>install uuid={uuid}")
    shutil.copy(mobile_provision_path, os.path.join(provision_root, f"{uuid}.mobileprovision"))

def get_current_installed_mobile_provisions():
    print("===print all mobileprovisions on this machine===")
    for file_name in get_file_name_list(provision_root, ".mobileprovision"):
        print(f">{file_name}")

def install_all_mp(base_folder):
    print("===install *.mobileprovision from P4===")
    for file_path in get_file_path_list(base_folder, ".mobileprovision"):
        install_mobile_provision(file_path)
    get_current_installed_mobile_provisions()

if __name__ == '__main__':
    parser = ArgumentParser()
    parser.add_argument(
        "-path",
        "--search-path",
        help="mobileprovision search path",
        dest="base_folder",
        default="",
    )
    options = parser.parse_args()
    install_all_mp(options.base_folder)

执行方式

python InstallMobileprovision.py -path /workspace/Dev/MainClient/BuildiOS/Certificate

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值