Mac下Userdefault.xml的路径

(CC_TARGET_PLATFORM == CC_PLATFORM_MAC)

我用

string s = UserDefault::getInstance()->getXMLFilePath();

CCLOG("userdefault path:%s, len: %d", s.c_str(), s.size());


打印出:

userdefault path:/Users/jianan/Library/Caches/UserDefault.xml, len: 44


但实际上我去这个目录下,并没有找到这个文件。


最后我在

/Users/jianan/Library/Preferences下也就是: ~/Library/Preferences 下找到 mahjonggx.plist 文件,打开后,发现这个文件里面确实是有我想要的东西,然而可惜的是:里面是乱码。然而这个文件就是真正的userdefault文件,因为把它删除后缓存xml文件确实没了。


下面是当时的一些疑问:

贾楠 6-1 18:18
大家知道mac下面userdefault这个问题嘛。。我现在想:在我这重启多个客户端,让它们读取不同的这个userdefault文件。  但是我现在发现它们读取的都是:~/Library/Preferences 下的 mahjonggx.plist这个文件。


 贾楠 6-1 18:30
 搞定了。mac下的userdefault确实是读取的这个plist文件


 杨世玲 6-1 18:37
 那个是和BundleID相关的。


 杨世玲 6-1 18:38
 不同的客户端可以用不同的bundleID


 何元博 6-1 18:39
 每个客户端有自己的Library吧  iOS就是这样的 



因此让不同app读取不同userdefault文件的方法就是:重新命名这个app名字。


------------华丽分割线-------------

最近又在试删除这个plist的时候,发现不行了。最后这样删除的可行。

1.

which cc
cc: aliased to /Users/jianan/Documents/gxmj/guangxi/guangxi_debug/runtime/mac/mahjonggx.app/Contents/MacOS/mahjonggx -workdir ~/Documents/gxmj/guangxi/guangxi_debug -console disable

2.

cd /Users/jianan/Documents/gxmj/guangxi/guangxi_debug/runtime/mac/mahjonggx.app/Contents/MacOS/
3.

defaults delete com.guangxi.mac
即可。

这个包名来源:

cat /Users/jianan/Documents/gxmj/guangxi/guangxi_debug/frameworks/runtime-src/proj.ios_mac/mac/Info.plist
看到这个字段:

<key>CFBundleIdentifier</key>
	<string>com.guangxi.mac</string>
具体设置:







总结:mac下UserDefault.xml文件的位置和app包名是相关的



猜你喜欢

转载自blog.csdn.net/themagickeyjianan/article/details/72772350