跳过内容

MASTG-TOOL-0136:plistlib

plistlib 模块 是 Python 标准库的一部分,允许您以编程方式读取、修改和写入 .plist (属性列表) 文件。 它支持 XML 和二进制 plist 格式,并提供基于原生字典的 API。

这使得 plistlib 成为 PlistBuddy 的跨平台替代方案,适用于脚本或自动化用例。

读取 Plist 文件

以下示例通过将 plist 文件加载到 Python 字典中来打印其内容

import plistlib

with open("Info.plist", "rb") as f:
    plist = plistlib.load(f)

print(plist)

这将打印 plist 的字典表示形式,可以像任何其他 Python 字典一样进行检查和修改。

读取指定的 Plist 条目

解析 plist 后,您可以使用常规 Python 语法访问字典键和数组元素。 以下示例打印第三个应用程序图标格式

print(plist["CFBundleIcons~ipad"]["CFBundlePrimaryIcon"]["CFBundleIconFiles"][2])
# Output: AppIcon-140x40

更改 Plist 值

要修改诸如 CFBundleDisplayName 之类的条目,请分配一个新值,然后使用 plistlib.dump 将更新后的 dict 写回文件

plist["CFBundleDisplayName"] = "My New App Name"

with open("Info.plist", "wb") as f:
    plistlib.dump(plist, f)

添加和删除 Plist 值

可以使用常规 Python 字典操作添加或删除新键

# Add a new dictionary
plist["CustomDictionary"] = {"CustomProperty": "OWASP MAS"}

# Delete a key
del plist["CustomDictionary"]["CustomProperty"]

# Save the updated plist
with open("Info.plist", "wb") as f:
    plistlib.dump(plist, f)