Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS数据保护在已安装的应用程序上不起作用_Ios_Iphone_Data Protection - Fatal编程技术网

iOS数据保护在已安装的应用程序上不起作用

iOS数据保护在已安装的应用程序上不起作用,ios,iphone,data-protection,Ios,Iphone,Data Protection,我想在我的应用程序中启用“数据保护”。此外,我想检查它是否与现有的应用程序一起工作,因为我最初没有使用它。为了测试这一点,我使用了开发人员配置文件。首先,我在启用密码的设备中安装了以前的应用程序(DataProtection已关闭),并确保用户的文档在documents文件夹中可用。然后,我在我的资源调配配置文件中启用了数据保护,并使用新配置文件重新构建了应用程序。然后我把它安装在以前的应用程序之上。然后我锁定了设备并使用Xcode下载了应用程序沙盒,注意到我可以毫无问题地访问沙盒。我做了好几次

我想在我的应用程序中启用“数据保护”。此外,我想检查它是否与现有的应用程序一起工作,因为我最初没有使用它。为了测试这一点,我使用了开发人员配置文件。首先,我在启用密码的设备中安装了以前的应用程序(DataProtection已关闭),并确保用户的文档在documents文件夹中可用。然后,我在我的资源调配配置文件中启用了数据保护,并使用新配置文件重新构建了应用程序。然后我把它安装在以前的应用程序之上。然后我锁定了设备并使用Xcode下载了应用程序沙盒,注意到我可以毫无问题地访问沙盒。我做了好几次,但沙盒仍然可以访问

然后我删除了该应用程序,并新安装了启用数据保护的应用程序。然后我下载了应用程序沙盒,我注意到沙盒中的所有文件夹(包括Documents文件夹)都是空的


这意味着数据保护只能在新安装的应用程序上工作。我做错什么了吗?我还想在现有应用程序上启用数据保护。我怎样才能做到这一点呢?

因为我没有得到足够的关注,所以我把它发布到了苹果开发者论坛上。他们的建议是,在启用数据保护后,如果我们要更新应用程序(而不删除旧应用程序),我们应该明确为所有文件(包括旧文件)设置数据保护

所以我所做的就是循环遍历我的文档文件夹,并将数据保护属性设置为我所有的旧文件。 我还在创建新文件的所有位置设置数据保护属性。这就解决了我的问题

因此,底线是,如果要更好地在旧应用程序中启用数据保护,请明确执行。