如何使用 PlistBuddy 将多个条目添加到 plist 字典中

2024-01-12

In my Info.plist我想修改 shell 上的 Plist 文件,如下所示:

<plist version="1.0">
<dict>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>urlname-1</string>
        </dict>
    </array>
</dict>
</plist>

现在我想使用 PlistBuddy 使其看起来像这样,添加CFBundleURLSchemes带有字符串数组值(或每个其他值)的键:

<plist version="1.0">
<dict>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>urlname-1</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>urlscheme-1</string>
            </array>
        </dict>
    </array>
</dict>
</plist>

我如何使用 PlistBuddy 实现这一目标?

假设数组值为CFBundleURLTypes将为空: 通过执行/usr/libexec/PlistBuddy -c "Add :CFBundleURLTypes:0:CFBundleURLName string 'urlname-1'" Info.plist我可以将字典添加到数组中,包括它的第一个键/值对:

<plist version="1.0">
<dict>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>urlname-1</string>
        </dict>
    </array>
</dict>
</plist>

但我不知道如何获得第二把钥匙,例如CFBundleURLSchemes将字符串数组值放入同一字典中。

谁能给我指点一下吗? PlistBuddy 可以做到这一点吗?


不确定这是否是您期望的命令......

/usr/libexec/PlistBuddy -c "clear dict" -c "add :CFBundleURLTypes array" -c "add :CFBundleURLTypes:0 dict" -c "add :CFBundleURLTypes:0:CFBundleURLName string 'urlname-1'" -c "add :CFBundleURLTypes:0:CFBundleURLSchemes array" -c "add :CFBundleURLTypes:0:CFBundleURLSchemes:0 string urlscheme-1"  Info.plist
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PlistBuddy 将多个条目添加到 plist 字典中 的相关文章