macOS用PlistBuddy读取plist的AccountID值报条目不存在如何解决
报错原因
Accounts节点的值为数组类型,而非字典类型。PlistBuddy访问数组内元素时,必须明确指定元素对应的数组下标(下标从0开始计数),原命令跳过数组下标直接拼接键名,无法匹配到对应路径,因此触发条目不存在的报错。
从你提供的plist结构可以看到,<key>Accounts</key>节点后直接跟随<array>标签,数组内第一个字典条目对应下标0,AccountID键就存放在这个字典中。
正确命令
读取首个iCloud账号的AccountID,执行以下命令即可:
/usr/libexec/PlistBuddy -c "print :Accounts:0:AccountID" /Users/username/Library/Preferences/MobileMeAccounts.plist
补充说明
- 如果
Accounts数组下存在多个账号条目,需要读取第N个账号的AccountID时,把命令里的0替换为对应下标即可(比如第二个账号对应下标1,第三个对应2)。 - 命令执行后会直接返回对应账号的AccountID值,即你看到的
username@domain.com格式的内容。
内容的提问来源于stack exchange,提问作者notarobot
相关产品推荐
相关产品推荐

