从设备获取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的#ifdefmacros加载干净的默认值:

 #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];