如题。因为我不能丢数据,所以被逼无奈,弄出了这个方法。我对 iOS 开发什么的一窍不通。
现分享下思路和解决方法。希望能帮到有需要的人。
第一次发,请轻拍。
TLDR
应该是 iOS 的 bug 。
临时解决方法:iTunes 备份 -> 编辑备份文件(删除缓存文件和占用空间的大文件)-> 还原备份到手机上
问题描述
设备:iPhone 11, iOS 14.6 - 15.0.1, 128GB 。
"其他系统空间"占用 50GB,且不停增长。2 个月尝试过一次 iTunes 备份+还原,稍微有些用,但很快就又变成 50-80GB 了。期间升级到了 iOS15 。这时再尝试iTunes 备份+还原是毫无用处。
尝试过的方法
网上大部分都是老生常谈的无用方法,以下列举我尝试过的。
无效的方法
微有效的方法
有效方法
注:我没试过 iCloud,因为其隐私协议和网速问题。目测是没用的,因为占用空间的文件是 iPhone 备份的一部分,有人也确认过这点了。有需要也可以试试,没准儿行呢。
思路
思路是比较通用的:找出 iPhone 备份目录里最大的文件,删了,然后再还原。
因为'iTunes 备份+还原'没效果,推测占用的空间是 iPhone 备份文件的一部分。这也和备份大小(~110GB )相吻合。觉得应该找出有问题文件夹(也就是最大的文件夹)。
尝试过爱思和 iMazing 等,都不显示备份文件里目录大小的。所以转头盯上了 iPhone 备份目录里的 SQLite ( manifest.db ),这个加密的数据库存着备份目录和手机目录的映射关系。用iOSbackup解密 SQLite 数据库,用 WinDirStat 找出备份目录中的最大的文件。然后 SQLite DB Viewer 在数据库中搜索这些文件,找出有问题的目录。
Root Cause
通过在 SQLite 里查找 2-3 个最大的文件名字,发现都是在同一个目录下的视频文件。
AppDomainGroup-group.com.apple.mobileslideshow.PhotosFileProvider
<- 这个是 iMazing 里的目录Storage/photospicker/version=1&uuid=2B739297-59B0-4613-A1B7-551F3C5803C5&mode=current.mov
<- 不知道是啥Google 搜索'Storage/photospicker',找到了相关的 bug report Picked asset files in system folder not cleaned yet after backup?。bug report 里面提到了 DS File 。我看了下photospicker
文件夹里的内容,确实是这样的。我自己经常用群晖备份照片。根本问题是 iOS 把 DS File 上传下载的文件存了缓存,但没删。因此,应该是 iOS 的锅。
解决方法
本地,免费,不需要 iCloud,近乎无损。风险自负。
AppDomainGroup-group.com.apple.mobileslideshow.PhotosFileProvider/photospicker
的内容。顺便看一下 AppDomainGroup-group.com.apple.mobileslideshow.PhotosFileProvider/draganddrop
。如果你的问题不是这个目录,请按照“思路”里面的方法找出有问题的目录。iMazing.Versions\Blueprints
把修改好的 iPhone 备份移动到 iTunes 备份目录下。iMazing.Versions
就在 iTunes 备份目录下。这个 bug 已经通过 feedbackassistant.apple.com 提交给苹果了,希望能赶紧修了。
欢迎转发分享。只要表明出处(本页的 URL ),就不需要问我。
注:之后可能会再整理下发到我自己的其他地方存档,例如 Github 。
关键词:iOS,其他系统空间,空间不够用,备份还原,Manifest.db ,编辑 iTunes 备份文件,解密加密的 iTunes 备份的 SQLite,储存空间,其它空间,缓存,清除其他占用空间,储存空间已满
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.