如题。因为我不能丢数据,所以被逼无奈,弄出了这个方法。我对 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,储存空间,其它空间,缓存,清除其他占用空间,储存空间已满
1
alfchin 2021-10-06 15:42:48 +08:00 via iPhone
不错的办法
|
2
moooookey 2021-10-06 18:13:15 +08:00 via iPhone
库克:这个 bug 不着急修,还要给写这个 bug 的相关人员加钱
|
3
felixcode 2021-10-06 20:18:32 +08:00 1
传说中的 iPhone 不需要折腾
|
4
qq316107934 2021-10-06 20:50:34 +08:00
写程序把存储空间占满,iOS 会自动释放这部分空间吗? 可以试试
|
5
wuhoo OP @qq316107934 嘿嘿,幸亏我写了 "我对 iOS 开发什么的一窍不通。"。写 iOS 代码是不可能的(懒+不会)。
我试过拍视频和 iMovies 剪辑视频,会直接停止我的拍摄 或 iMovies 导出(提示因为空间不足),系统并没有自动释放空间。所以,猜测 iOS 并不会因为空间满了就释放缓存空间。 @felixcode 我用 iPhone 确实比安卓少折腾了,总体是省心了。但一折腾就要命啊~ 这还是侥幸找到了解决方法。要是没找到的话,要么丢数据(完全重置系统),要么买更大的(但迟早也会没空间)。 PS:希望这些删不掉的缓存只是 iOS14 时期的积累,iOS15.0.1 之后不会再有这个问题。别变成每个季度还原一次手机(捂脸 |
6
qq316107934 2021-10-07 02:13:37 +08:00
@wuhoo #5 很遗憾,iOS 15.0.1 依旧有这个问题,我这边已经涨到 60GB 了,因为是 512GB 的一直没管
|
7
wuhoo OP @qq316107934 好的。我只希望 iOS15 不继续增加新的缓存。已升到 15.0.1,会继续观察。
|
8
VIVVACI 2021-10-07 12:00:01 +08:00
会不会是和 mac 一样的,这些空间实际上可以抹出,里面是一些备份信息之类的,等到需要的时候自动清空穿件实践最早的文件
|
10
0335boy 2021-11-08 21:46:46 +08:00
13pro Max 128G iOS15.1 系统数据已经 90GB 了 有比我还高的么……
|
11
MsHan 2022-11-27 16:19:59 +08:00
这个问题真的是烦死人,上周六重置了手机,一周时间又从 8G 变成 70G
|