问题描述
嗨,请原谅我的英语,也是 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 都会发生变化,这就是您的路径无法在重新编译时加载的原因。