1. 程式人生 > >Mac下Userdefault.xml的路徑

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包名是相關的