現時点では、このコードを使用しています
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" "Test/Settings.bundle/Root.plist"
ビルド段階のスクリプト部分で、製品バージョンをアプリケーション設定の読み取り専用フィールドに入れます。そのフィールドには、設定配列の位置 1 (0 から開始) があります。
私や他の開発者が開発中に位置を誤って変更する可能性があるため、そのフィールドにアクセスするために 1 よりも堅牢なものを使用することが可能かどうかを尋ねています。
その位置に関係なく、その識別子を指定してその要素にアクセスできますか?
私のニーズをよりよく説明するために、例を書き留めました。1.2.345
のようなものを2 番目のstring
ノードに入れる必要があります。つまり、 からに変更する必要があります。配列の2番目であることを明記せずにノードにアクセスすることは可能ですか? 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>
...