微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter-iOS 当应用程序更新/重新编译存储的图像丢失时

如何解决Flutter-iOS 当应用程序更新/重新编译存储的图像丢失时

嗨,请原谅我的英语,也是 Flutter iOS 的新手,我在 iOS 上有一个关于 Flutter 的应用程序,用户可以从他们的相机和图库中拍摄照片和视频我正在使用 image_picker 包,这没有问题,然后我保存它在我尝试遵循this指南

的应用程序文档目录中

获取应用程序目录的代码是这样的

Directory _appDocDir;
_appDocDir = await getApplicationDocumentsDirectory();
final Directory _appMediaDir = Directory('${_appDocDir.path}/Pictures/');
return _appMediaDir;

添加一个图片”目录,这将给出一个路径

/Users/macman/Library/Developer/CoreSimulator/Devices/96060868-7E5C-4E15-9900-4D1D4B0B5ACE/data/Containers/Data/Application/BE7728A6-FF15-498E-91A0-A96A3DDE5B31/Documents/Pictures/D_IMG_0002.JPG  

从 iOS 模拟器我保存它并放入数据库,在重新编译应用程序或进行构建更新后,不再找到预览图像/视频路径。我试图在这个构建上保存另一个图像并给出了这个路径

/Users/macman/Library/Developer/CoreSimulator/Devices/96060868-7E5C-4E15-9900-4D1D4B0B5ACE/data/Containers/Data/Application/9D634D91-07B8-43BE-8646-2A55833322DF/Documents/Pictures/D_IMG_0005.JPG

我注意到之前的路径“/BE7728A6-FF15-498E-91A0-A96A3DDE5B31/”每次我重新编译应用程序或从iOS设备进行更新时都会更改,但找不到图像。对于能够保存图像的用户来说,我做错了什么?

更新:我尝试更改逻辑以将保存的路径更改为仅基本名称 (D_IMAGE_0005.JPG),然后在预览图像时将调用当前应用程序文档目录,但这也不起作用。

谢谢

解决方法

如果您的应用程序在沙盒环境中运行,则每次您重新安装应用程序时,iOS 都会删除文档目录。

请参阅this stackoverflow question以获得更多说明

,

您好,不要保存 getApplicationDocumentsDirectory() 给定的整个路径,而是只保存基本名称,并且每次预览/加载图像时调用

getApplicationDocumentsDirectory() + 'Pictures/<basename>',

每次在 iOS 上更新或重新编译应用程序时,appid 都会发生变化,这就是您的路径无法在重新编译时加载的原因。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。