iOS 存储照片会有两部分,原始文件和数据库文件。
第一部分:原始文件
照片原始文件在 "DCIM/1**APPLE" 文件夹下
(根据照片数量,"1**APPLE"文件夹可能会有若干个,暂不清楚是按照什么规则产生的文件夹,但是一旦产生了新文件夹,比如 101APPLE ,那么新的照片就都会在"101APPLE","100APPLE"的照片文件就不会增加)
第二部分:数据库文件
照片的数据库文件在 "PhotoData" 文件夹下,由"Photos.sqlite"、"Photos.sqlite-shm"、"Photos.sqlite-wal"记录。
如果直接将照片文件,上传至 "DCIM/1**APPLE" 文件夹下,那么虽然手机上存有原始文件,但是在"照片 APP"中依然不会显示。
接着,说一些远古的回忆,如果有印象的可能都用了 iOS 十年以上了。
在很早以前的 iOS 系统中,因为也没有 iCloud 和隔空投送的存在,想要导入照片是一件比较困难的事,一两张照片可以通过发到微信/QQ ,然后保存到手机,但是多了就很麻烦;如果通过 iTunes 进行同步,在手机上又无法删除。
于是就有了一些“奇技淫巧”,即把照片通过各种手机助手(如 PP 助手、91 助手)直接导入到 "DCIM/1**APPLE" 文件夹下,接着删除"Photos.sqlite"、"Photos.sqlite-shm"、"Photos.sqlite-wal",强制让手机重建照片数据库。
后来,随着这些助手的内卷,有了更加亲民的方式,就是安装助手的手机 APP ,然后连上电脑后,电脑端助手会把照片传到手机端助手,手机端助手在导入到"照片 APP"(原理其实类似微信,就是简化了操作过程);再到后来,随着 AirDrop 、iCloud 的普及,导入照片也就慢慢的变的不是什么困难的问题了。
最后,来说结论吧,我认为这是一个历史遗留问题,本次遇到 bug 恢复之前照片的用户,可能是之前系统中照片数据库出现 bug ,导致删除照片后,仅仅清除了"Photos.sqlite"、"Photos.sqlite-shm"、"Photos.sqlite-wal"的记录,但是照片源文件还在,而 iOS17.5 可能重建了照片库索引,于是导致之前被删除的照片重新出现。
综上,我认为本次的问题和"iCloud 照片"关系不大,主要应该是本地文件和备份的问题;之所以有部分用户遇到了抹掉过手机依然恢复了照片,我的推测是这些客户使用过 iCloud 云备份或电脑的备份,因为这个备份是全局备份,如果之前备份的时候就存在未被彻底删除的照片数据,那么还原备份后上述文件也会重新还原到手机。