Flutter-iOS, когда приложение обновляет / перекомпилирует сохраненное изображение, отсутствует
Привет, прости мой английский, а также новичок в флаттер-iOS, у меня есть приложение для флаттера на iOS, в котором пользователи могут делать снимки и видео со своей камеры и галереи. Я использую пакет image_picker, у меня нет проблем, затем я сохраняю его в своем каталоге документов приложений, я пробовал следовать этому руководству
мой код для получения каталога приложения это
Directory _appDocDir;
_appDocDir = await getApplicationDocumentsDirectory();
final Directory _appMediaDir = Directory('${_appDocDir.path}/Pictures/');
return _appMediaDir;
добавлен каталог 'Pictures', это даст путь
/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), тогда при предварительном просмотре изображение будет вызывать текущий каталог документов приложения, но это также не работает.
Спасибо
2 ответа
Привет, не сохраняйте весь путь, указанный getApplicationDocumentsDirectory() в вашей записи, вместо этого сохраняйте только базовое имя, и каждый раз, когда вы просматриваете / загружаете изображение, вызывайте
getApplicationDocumentsDirectory() + 'Pictures/<basename>',
Каждый раз, когда приложение обновляется или перекомпилируется на iOS, идентификатор приложения изменяется, поэтому ваш путь не загружается при перекомпиляции.
iOS удаляет каталог документов каждый раз, когда вы переустанавливаете приложение, если ваше приложение работает в среде песочницы.
Пожалуйста, обратитесь к о этому вопросуstackoverflow для получения дополнительных разъяснений.