我需要通过查找键来从配置文件更新plist字符串。如果键在info.plist和配置文件之间匹配,则将info.plist中的字符串替换为配置文件中的值。
qa.xcconfig:
username=newUserName
password=newPassword
info.plist
<key>username</key>
<string>oldUserName</string>
<key>password</key>
<string>oldPassword</string>
代码尝试:
awk -F= 'FNR==NR{QADIC[$1]=$2;next} {for (i in QADIC){
$(rlwrap /usr/libexec/PlistBuddy -c "Set :i 'QADIC[i]'" Info.plist)
}
}' qa.xcconfig
预期输出:
<key>username</key>
<string>newUserName</string>
<key>password</key>
<string>newPassword</string>
如果一起工作,我似乎无能为力。
答案 0 :(得分:0)
我为我的问题找到了解决方案,如下所示:
QA_KEY_ITEMS=($(awk -F'=' '{print $1}' < qat.xcconfig))
QA_VALUE_ITEMS=($(awk -F'=' '{print $2}' < qat.xcconfig))
for ((i=0;i<${#QA_KEY_ITEMS[@]};i++))
do
key=${QA_KEY_ITEMS[$i]};
value=${QA_VALUE_ITEMS[$i]};
rlwrap /usr/libexec/PlistBuddy -c "Set :$key '$value'" Info.plist;
done