从设备获取NSUserDefaults plist文件
当在模拟器上testing我的应用程序时,我喜欢从iPhone Simulator文件夹中编辑或者甚至垃圾掉应用程序plist文件(包含NSUserDefaults)的function。 这在testing时certificate是有用的(例如,您的应用程序在那里存储字典,但您更改用于此数据的模型/键,因此需要删除存储的字典)。
是否有可能在设备上访问此文件(用于您自己的应用程序),而不越狱?
提前致谢
该文件在Library/Preferences
。 该文件是名为<iOS application target identifier>.plist
的二进制plist(查找您的应用程序目标设置中的标识符字段),或者列出目录内容:
NSString *path = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject]; NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
你也可以用一个基于envvariables的#ifdef
macros加载干净的默认值:
#ifdef TESTING // use the code provided by tsakoyan below #endif
如果您只关心NSUserDefaults值,则应该将所有自定义数据垃圾/恢复到全局默认值
NSDictionary *userDefDic = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; NSArray *keys = [NSArray arrayWithArray:[userDefDic allKeys]]; for (NSString *key in keys) { [[NSUserDefaults standardUserDefaults] removeObjectForKey:key]; } [[NSUserDefaults standardUserDefaults] synchronize];