从 plist 中删除一个键

Posted

技术标签:

【中文标题】从 plist 中删除一个键【英文标题】:Delete a key from a plist 【发布时间】:2019-10-07 08:59:59 【问题描述】:

我有一个用 swift 编写的命令行工具,可以编辑 xcode 项目设置。

我需要能够从 .entitlements 文件中删除“密钥”。

具体情况是我有一些项目不支持关联域但需要全部删除

    <key>com.apple.developer.associated-domains</key>
<array>
    <string>applinks:xxx.page.link</string>
</array>

以一种优雅的方式从文件中提取,因为仅将数组留空意味着项目指示使用关联的域,但它没有。

简而言之,使用 swift 从 plist 中删除密钥。

【问题讨论】:

最好的方法必须是把整个列表加载到内存中,删除键/数据并将其写回文件。例如见***.com/questions/40436895/… 【参考方案1】:

最简单的解决方案是使用 PlistBuddy。

您必须使用以下内容启动 shell 命令:https://***.com/a/26973384/3393964

命令类似于:

/usr/libexec/PlistBuddy -c 'Delete :com.apple.developer.associated-domains' Info.plist

【讨论】:

以上是关于从 plist 中删除一个键的主要内容,如果未能解决你的问题,请参考以下文章

macOS: 使用新版plutil命令操作Plist文件更方便

从 plist 读取字典后无法编辑字典

从 plist 文件中读取字典的奇怪行为

从 uitableview 中删除 + 写入 plist 不起作用

iOS 从 UITableView 滑动以删除 plist 中的数组

从 *.plist 文件 iPhone 脚本中删除 <dict>...</dict>