天天看点

Mac OS 的属性列表文件plist装换

    mac os系统自身包含有转换plist的工具:plutil.其中-p是以human可读方式显示plist文件,而convert就是转换参数,其中支持的格式有:xml,二进制和json。下面拿一个实际例子测试下,该plist文件是二进制文件:

apple@kissair: contents$ls

info.plist macos     

resources

apple@kissair: contents$cat i*

bplist00?

 !"#$%&'()*(wdtxcodeydtsdkname_nsprefpaneiconfile\cfbundlenamezdtsdkbuild_cfbundledevelopmentregion_cfbundleversion_buildmachineosbuild_nsprincipalclass]nsmainnibfile_nsprefpanesearchparameters_ssupportssuddentermination_cfbundlepackagetype_cfbundleinfodictionaryversion_cfbundleexecutablezdtcompiler_cfbundleidentifier_dtplatformversion\dtxcodebuild_cfbundlesignature_nsprefpaneiconlabel_dtplatformbuildt0463zmacosx10.6_flashplayerpreferences.png\flash

playerv10k549wenglishz15.0.0.239u12f45_fspreferencesmain_flashplayerpreferencesttruetbndls6.0\flash playerp_ com.adobe.flashplayerpreferencesrgmv4h1503t????\flash playe7?i^kv??????,lal????????

      '28lejos??????+?

显示其内容:

plutil -p i*

{

  "dtxcode" => "0463"

  "dtsdkname" => "macosx10.6"

  "nsprefpaneiconfile" => "flashplayerpreferences.png"

  "cfbundlename" => "flash player"

  "dtsdkbuild" => "10k549"

  "cfbundledevelopmentregion" => "english"

  "cfbundleversion" => "15.0.0.239"

  "buildmachineosbuild" => "12f45"

  "nsprincipalclass" => "fspreferencesmain"

  "nsmainnibfile" => "flashplayerpreferences"

  "nsprefpanesearchparameters" => "flashplayerpreferences"

  "nssupportssuddentermination" => "true"

  "cfbundlepackagetype" => "bndl"

  "cfbundleinfodictionaryversion" => "6.0"

  "cfbundleexecutable" => "flash player"

  "dtcompiler" => ""

  "cfbundleidentifier" => "com.adobe.flashplayerpreferences"

  "dtplatformversion" => "gm"

  "dtxcodebuild" => "4h1503"

  "cfbundlesignature" => "????"

  "nsprefpaneiconlabel" => "flash player"

  "dtplatformbuild" => "4h1503"

}

转换:

apple@kissair: contents$plutil -convert xml1 i* -o ~/x

这是转换后的内容:

apple@kissair: ~$file x

x: xml document text

apple@kissair: ~$cat x

<?xml version="1.0" encoding="utf-8"?>

<!doctype plist public "-//apple//dtd plist 1.0//en" "http://www.apple.com/dtds/propertylist-1.0.dtd">

<plist version="1.0">

<dict>

<key>buildmachineosbuild</key>

<string>12f45</string>

<key>cfbundledevelopmentregion</key>

<string>english</string>

<key>cfbundleexecutable</key>

<string>flash player</string>

<key>cfbundleidentifier</key>

<string>com.adobe.flashplayerpreferences</string>

<key>cfbundleinfodictionaryversion</key>

<string>6.0</string>

<key>cfbundlename</key>

<key>cfbundlepackagetype</key>

<string>bndl</string>

<key>cfbundlesignature</key>

<string>????</string>

<key>cfbundleversion</key>

<string>15.0.0.239</string>

<key>dtcompiler</key>

<string></string>

<key>dtplatformbuild</key>

<string>4h1503</string>

<key>dtplatformversion</key>

<string>gm</string>

<key>dtsdkbuild</key>

<string>10k549</string>

<key>dtsdkname</key>

<string>macosx10.6</string>

<key>dtxcode</key>

<string>0463</string>

<key>dtxcodebuild</key>

<key>nsmainnibfile</key>

<string>flashplayerpreferences</string>

<key>nsprefpaneiconfile</key>

<string>flashplayerpreferences.png</string>

<key>nsprefpaneiconlabel</key>

<key>nsprefpanesearchparameters</key>

<key>nsprincipalclass</key>

<string>fspreferencesmain</string>

<key>nssupportssuddentermination</key>

<string>true</string>

</dict>

</plist>