[シェル] | MACはPlistBuddyでのplistファイルを変更| IPAバージョン番号が1つインクリメントします

 マックOSのplistファイルPlistBuddy、パス/usr/libexec/PlistBuddy

何PlistBuddyこと?

  • ツールは、Macオペレーティングplistファイルが付属しています
  • パス:は/ usr / libexecに/ PlistBuddy
  • 使用します。/ usr / libexecに/ PlistBuddy -c "を設定し、キー値" plistUrl

0.準備

まず、単純なplistファイル、現在準備BundleVersion1の値を。

 このためのコードを対応するXML plistファイル:

<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
<!DOCTYPEのplist PUBLIC " - //アップル// DTD PLIST 1.0 // EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" > 
< plistのバージョン= "1.0" > 
< 辞書> 
    < キー> UDID </ キー> 
    < 文字列> bf76c991995e61c5c783f3441bff4a18605bc7ba </ 文字列> 
    < キー> BundleId </ キー> 
    < 文字列> com.foobar2000。
    キー> IpaPath </ キー> 
    < 文字列> /ユーザー/ YPF /デスクトップ</ 文字列> 
    < キー> CFBundleShortVersionString </ キー> 
    < 文字列> 1.0 </ 文字列> 
    < キー>のCFBundleVersion </ キー> 
    < 文字列> 1 </ 文字列> 
    < キー> NSAppTransportSecurity </ キー> 
    <辞書>
        < キー> NSAllowsArbitraryLoads </ キー> 
        < /> 
    </ dictの> 
</ dictの> 
</ PLIST >

値plistのをお読みください。 

 テストファイルのパス:/Users/xxxx/Desktop/test.plist
/ usr / libexecに/ PlistBuddy -c " 印刷のCFBundleVersion " /Users/xxxx/Desktop/test.plist

効果:

Mac miniに:デスクトップXXXX $は/ usr / libexecに/ PlistBuddy -c " のCFBundleVersionを印刷" /ユーザ/ XXXX /デスクトップ/ test.plist
 1 

コマンド・インタプリタ:

// Print:读取值并打印的命令
// /usr/libexec/PlistBuddy -c:指定PlistBuddy的路径
// -c:后接要执行的命令
// CFBundleVersion:要读取value的key
// /Users/ypf/Desktop/Test.plist:plist文件的路径
/usr/libexec/PlistBuddy -c "Print CFBundleVersion" /Users/ypf/Desktop/test.plist

PlistBuddy使用TIPS:

  • 如何定义嵌套的键: 每个键之间使用":"符号分隔,比如:Software->Gallery->OnlineMarketplace表述为:":Software:Gallery:OnlineMarketplace", 第一个":"表示根.
  • 如果键值的名称包含空格等特殊字符的时候,如同命令行的转义字符一样,使用"/"来转义,比如: ":Software:Gallery:Online/ Marketplace".
  • PlistBuddy如果不使用"-c"参数,则进入人机交互模式, "-c"的意思就是执行它后面的命令列表,而命令如果有参数,需要把它们包含在引号中。

2. 用变量保存读到的BundleVersion

这个值后面还要用,所以需要定义一个变量保存起来~~ 

BundleVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" /Users/xxxx/Desktop/test.plist)
echo $BundleVersion

执行效果:

Mac mini:Desktop xxxx$ BundleVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" /Users/xxxx/Desktop/test.plist)
Mac mini:Desktop xxxx$ echo $BundleVersion
1

3. 变量的值+1 

终端下直接写+ - * /(加减乘除)会被当做字符串,写计算表达式要用到expr。 

// 注意!expr之后有个空格
BundleVersion=`expr $BundleVersion + 1`

echo $BundleVersion输出结果,可以看到BundleVersion的新值为2.

 

4. 将变量的新值保存到plist 

PlistBuddy向plist文件写入命令为Set  

// 指定plist路径、目标键值对的key
/usr/libexec/PlistBuddy -c "Set CFBundleVersion $BundleVersion" /Users/xxx/Desktop/test.plist

执行上述命令后,BundleVersion的新值为2。

 
增删改查操作示例:
1.添加
plistbuddy -c 'Add :Software:Gallery:Version string "1.0"' ~/Desktop/com.sample.plist
2.输出
plistbuddy -c "Print" ~/Desktop/com.sample.plist
3.修改
plistbuddy -c 'Set :Software:Gallery:Version "1.1"' ~/Desktop/com.sample.plist
4.删除
plistbuddy -c 'Delete :Software:Gallery:Version' ~/Desktop/com.sample.plist
5.合并
plistbuddy -c "Merge ~/Desktop/Global.plist :Software:Gallery" ~/Desktop/com.sample.plist

  

 

参考文档:

终端用shell读写plist文件

shell 脚本修改plist配置

利用shell语句批量修改plist文件

おすすめ

転載: www.cnblogs.com/kaerxifa/p/12169610.html