目前我正在使用此代码
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" "Test/Settings.bundle/Root.plist"
在构建阶段的脚本部分,将产品版本放在应用程序设置的只读字段中。该字段具有首选项数组的位置 1(从 0 开始)。
我在问是否可以使用比 1 更健壮的东西来访问该字段,因为我或其他开发人员在开发过程中可能会意外更改位置。
无论其位置如何,我都可以访问指定其标识符的元素吗?
为了更好地解释我的需求,我写了一个例子。我需要将类似的东西1.2.345
放入第二个string
节点,即我需要从更改为。是否可以访问节点而不说明它是数组中的第二个?我要求在 PlistBuddy 中使用类似于 xpath 表达式的东西(如果存在的话)。dict
array
0.0.0
1.2.345
dict
<?xml version="1.0" encoding="UTF-8"?>
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Title</key>
<string>Application info</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>DefaultValue</key>
<string>0.0.0</string>
<key>Key</key>
<string>version</string>
<key>Title</key>
<string>Version</string>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
</dict>
<dict>
<key>DefaultValue</key>
<string>0</string>
<key>Key</key>
<string>build</string>
<key>Title</key>
<string>Build</string>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
</dict>
...