很多出售二手iPhone人都会问:iPhone能干净的卸载软件吗?会不会有残留?
想知道iPhone卸载软件会不会有残留,我们先得来了解下iOS 沙盒机制。
iOS 沙盒机制:
出于安全考虑,iPhone对于安装在手机上面的应用程序有所限制,这个限制就是应用程序只能在程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。总体来说沙盒就是一种独立、安全、封闭的空间。
沙盒机制的特点:
每个应用程序都有自己的存储空间。
每个应用程序都不可以翻过自己的围墙去访问别的存储空间的内容(越狱后设备除外)。
在访问别人沙盒内的数据时需要访问权限。
沙盒(sandbox)的核心内容是:sandbox对应用程序执行各种操作的权限限制。
获取系统目录下的文件路径。
应用程序的沙盒目录:
应用程序沙盒目录下有三个文件夹Documents、Library(下面有Caches和Preferences目录)、tmp。
Documents:保存应用运行时生成的需要持久化的数据iTunes会自动备份该目录。苹果建议将在应用程序中浏览到的文件数据保存在该目录下。
Library/Caches:一般存储的是缓存文件,例如图片视频等,此目录下的文件不会再应用程序退出时删除,在手机备份的时候,iTunes不会备份该目录。
Library/Preferences:保存应用程序的所有偏好设置iOS的Settings(设置),我们不应该直接在这里创建文件,而是需要通过NSUserDefault这个类来访问应用程序的偏好设置。iTunes会自动备份该文件目录下的内容。
tmp:临时文件目录,在程序重新运行的时候,和开机的时候,会清空tmp文件夹。
获取文件路径
iOS 中 app 对本地存储只能访问到自己的根目录,再往上就没有权限了。访问照片通讯录等需要经过用户同意,也只限写入特定格式的文件,所以如果有手动保存的照片或通讯录等从系统对应程序删除即可,不会存在隐藏的文件。
卸载 app 时根目录会被直接删除,而且根目录里的所有文件绝对都会被删除,不会有什么只读的。
Safari 中正常也是跳转到 App Store 安装,但通过企业开发者账号安装的也是一样直接删除 app 根目录。
所以,iPhone卸载后没有残留,也不用清理,也就不存在清理机制。
顺便提醒一下不要乱装描述文件,尤其是未签名的!(相信大家知道屏蔽iOS更新通知的描述文件吧,虽然那个描述文件是tvOS的,但是同样可以用来屏蔽iPhone的通知)
鉴于有人问为什么游戏、软件卸载了重新安装后,配置、数据都还在,以下是可能的几点原因:
1、如果你的游戏是在AppStore下载的,而且你有登录GameCenter(每次打开游戏时会提示“欢迎 某某......“”)。那么,你的游戏数据都会自动上传到云端,而且可以同步到其他登录该GameCenter的Apple设备,不管单机还是网游。因此下次重新安装的时候你的游戏数据都可以恢复。
2、不知道你有没有注意到,在 设置->通用->iPhone储存空间 里卸载软件的时候有两个选项,一个是卸载应用,一个是删除应用,如下。
卸载应用是会保留文稿和数据的,也就是重新安装后会和删除前一样。删除应用才是可以完全的删除。
3、iCloud如果打开了自动备份,可以自己查看下,是否有些应用勾选了,这些勾选了的会自动上传应用数据到云端。