Python3, parse ".mobileprovision" file in MacOS System;
Project description
PyMobileProvision
parse ".mobileprovision" file in MacOS System;
解析 MacOS 系统里,iOS和Mac开发常用到的".mobileprovision"文件,提取出里面的"plist"格式的内容
仅支持 Python3,Python2版本见:Py2MobileProvision
Install
# 注意:pip要用最新的(version>=21.0),否则,在安装cryptography依赖包时会失败
pip install PyMobileProvision
Example Modules:
from mobileprovision import MobileProvisionModel
mp_file_path = "/Users/shede333/Desktop/test.mobileprovision"
mp_model = MobileProvisionModel(mp_file_path)
# 也支持直接使用mobileprovision文件内容来创建model,AppStore Connect API一般会需要这种情况:
# from pathlib import Path
# file_content = Path(mp_file_path).read_text(encoding="ascii", errors="ignore")
# mp_model = MobileProvisionModel(file_content)
print(mp_model) # 打印mobileprovision文件的详细信息
print(mp_model.app_id_prefix) # appID的前缀
print(mp_model.app_id(is_need_prefix=True)) # app的BundleID,带app_id_prefix前缀
print(mp_model["name"]) # mobileprovision的"Name"属性(属性不区分大小写)
print(mp_model.date_is_valid()) # 现在的是否过期
print(mp_model.creation_timestamp) # 证书创建时间(时间戳,int值)
# ......还有很多其他属性.......
# 将int时间戳 转换为 本地日期时间
from datetime import datetime
local_dt = datetime.fromtimestamp(mp_model.creation_timestamp)
print(local_dt)
# 打印mobileprovision文件里包含的cer公钥证书信息
print(mp_model.developer_certificates)
# mobileprovision文件是否包含(支持)device_id设备
device_id = "00008020-000XXXXXXXXXXXXXX" # 设备的唯一ID
print(mp_model.contain_device_id(device_id))
# 转换为plist格式文件
dst_plist_path = "/Users/shede333/Desktop/test.plist"
mp_model.convert_to_plist_file(dst_plist_path)
# 导出entitlements.plist文件信息
ent_dst_path = "Users/shede333/Desktop/entitlements.plist"
mp_model.export_entitlements_file(ent_dst_path)
Example CLI:
mobileprovision -h
输出:
usage: OKEx工程里的多语言国际化相关的便捷操作 [-h] {import,parse,convert,entitlements} ...
positional arguments:
{import,parse,convert,entitlements}
支持的命令如下:
import 导入mobileprovision文件到系统默认路径里
parse 解析、打印mobileprovision文件里的内容
convert 转换mobileprovision文件为plist文件
entitlements 打印/导出 mobileprovision文件里 entitlements信息
optional arguments:
-h, --help show this help message and exit
待完成的功能
增加pytest标准测试;增加mp等测试资源;增加CLI控制功能;DevCertificateModel增加创建、失效日期属性;将日期属性,改为时间戳,避免UTC歧义;
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
PyMobileProvision-1.4.tar.gz
(7.2 kB
view hashes)
Built Distribution
Close
Hashes for PyMobileProvision-1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afc61e9ebee8535ebcc564d7175f176069808380b05b3088960370517e8d2582 |
|
MD5 | 5585083a1943c2d86ba7f88c7da3300e |
|
BLAKE2b-256 | 6ee8f09d465a56fe8424ebda65001e14e48ab1851097ff0dbaff33f27e8d4e41 |