最近遇到一个业务需求,需要在linux机器上编辑修改plist文件。
在mac os上有一个/usr/libexec/PlistBuddy的工具,可以方便地对plist文件进行读写保存。但是linux上是没有这个工具的,google了一下,python有一个工具叫biplist可以对plist进行处理,于是一顿操作如下:
安装biplist
pip install biplist
使用biplist
#读取plist文件
plist=readPlist(plist_path)
#读取某个key的值
bundle_id=plist['CFBundleIdentifier']
#修改某个key的值
plist['CFBundleIdentifier'] = new_bundle_id
#保存文件
writePlist(plist, plist_path)
中文乱码问题

本以为都很完美,但最后一步,保存文件的时候发现只要plist文件中有中文,保存之后就是乱码,Xcode打不开,又是一顿google,毫无收获。
于是便去查看biplist的源码,想看看writePlist这个方法是怎么写的
源码在此:
https://bitbucket.org/wooster/biplist/src/master/biplist/init.py

可以看到writePlist可以有3个参数的,加上binary=False完美解决中文乱码问题
writePlist(plist, plist_path,binary=False)
如果本文帮你解决了问题,点个赞呗~
网友评论