Flutter 应用程序的 NSDocumentsDirectory 中存储的数据在更新时被删除

rvb*_*ouw 7 ios flutter

我有一个应用程序,它使用标准 dart:io API 将用户的照片保存在 NSDocumentDirectory (通过 path_provider 检索)中。

在 iOS 和 Android 设备上的测试中,这似乎很好,并且即使在应用程序更新期间也能始终如一地工作。

但我有一个神奇的用户,他与众不同,每当我们发布 iOS 更新时,他就会报告问题!

看来,当我发布应用程序更新(特别是针对 iOS)时,存储在该文件夹 (NSDocumentDirectory) 中的图像将被删除或变得无法访问。

我一直在 StackOverflow 上进行挖掘,并在谷歌上搜索这一点,但没有成功,所以我完全不知所措,担心更多的人可能会遇到这个问题。

有没有其他人经历过这种情况,或者你能给我一些建议,告诉我在我因拔头发而秃顶之前该去哪里看吗?

我用来存储/检索这些图像的函数可以在这个要点中看到:

https://gist.github.com/rvbiljouw/2fd254f7a386e8a6882701bef5f59453

谢谢!

Jef*_* S. 10

我终于在reddit和github上找到了这个问题的答案。显然,每次应用程序更新后,iOS 上的文档目录路径都会发生变化。因此,不能存储此目录中存储的文件的绝对路径。相反,需要存储相对路径,然后将它们与每次访问文件时 getApplicationDocumentsDirectory() 返回的值连接起来。

以下是包含更多详细信息的链接: https://www.reddit.com/r/Flutter/comments/g4r9m2/strange_issue_with_files_being_deleted_from/

https://github.com/flutter/flutter/issues/23957