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
BuildMachineOSBuild
12F45
CFBundleDevelopmentRegion
English
CFBundleExecutable
Flash Player
CFBundleIdentifier
com.adobe.flashplayerpreferences
CFBundleInfoDictionaryVersion
6.0
CFBundleName
Flash Player
CFBundlePackageType
BNDL
CFBundleSignature
????
CFBundleVersion
15.0.0.239
DTCompiler
DTPlatformBuild
4H1503
DTPlatformVersion
GM
DTSDKBuild
10K549
DTSDKName
macosx10.6
DTXcode
0463
DTXcodeBuild
4H1503
NSMainNibFile
FlashPlayerPreferences
NSPrefPaneIconFile
FlashPlayerPreferences.png
NSPrefPaneIconLabel
Flash Player
NSPrefPaneSearchParameters
FlashPlayerPreferences
NSPrincipalClass
FSPreferencesMain
NSSupportsSuddenTermination
true