티스토리 뷰
Flutter 에서 코딩을 하다보면,
로컬에 파일이나 이미지를 저장할 때 사용할 경로를 받아오기 위해 path_provider 를 사용한다.
path_provider 에서 주로 쓰는 2개의 method가 있다.
getApplicationSupportDirectory
getApplicationDocumnetsDirecoty
안드로이드에서 getApplicationDocumnetsDirecoty 를 통해 받아오는 경로는
/data/user/0/{app_id}/app_flutter/
와 같은 형태이며 사용자 또는 다른 앱에서 접근이 불가능한 디렉토리다. (안드로이드 스튜디오에서 Device File Explorer로 확인 가능)
그래서 Hive 나 GetStorage 와 같은 패키지를 사용할때 이들 패키지에서 생성한 파일을 디폴트로 저장하는 곳이 여기다.
문제는 iOS 에서다. iOS 에서도 hive 나 GetStorage를 사용하면 생성된 파일을 저장하는 경로를 마찬가지로 getApplicationDocumnetsDirecotry 에서가 가져온 경로로 이용하는데, 아래와 같다.
/var/mobile/Containers/Data/Application/{app_id}/Documments/
iOS 에서 이 경로는 접근이 가능한 폴더다. 아이폰에 기본적으로 설치되어있는 앱 중에 '파일'앱을 이용하거나 MAC에 연결하여 사용자가 접근이 가능하다.
이 문제를 해결하기 위해, iOS에서 생성하는 파일을 저장하는 위치를 확인한 뒤, 사용자가 접근하기 못하게 감춰야 할 경우, getApplicationDocumnetsDirecoty 대신 getApplicationSupportDirectory 로 받아온 디렉토리로 저장 위치를 바꿔 줘야 한다.
참고로 iOS에서 getApplicationSupportDirectory 로 경로를 받아오면 아래와 비슷하다
/var/mobile/Containers/Data/Application/{app_id}/Library/Application Support/
안드로이드 | iOS | |
getApplicationDoccumentsDirectory | /data/user/0/{app_id}/app_flutter/ 사용자나 다른 앱에서 접근 불가 |
/var/mobile/Containers/Data/Application/{app_id}/Documments/ 다른 앱이나 장치에서 접근 가능 |
getApplicationSupportDirectory | /data/user/0/{app_id}/files (안드로이드 네이티브로 코딩하면 기본 내부 저장소로 사용되나, Flutter의 경우 app_flutter 를 기본 내부 저장소로 사용 ) |
/var/mobile/Containers/Data/Application/{app_id}/Library/Application Support/ 다른 앱이나 장치에서 접근 불가 |
'Dart & Flutter > Widget & Package' 카테고리의 다른 글
Deferred Components (0) | 2023.03.20 |
---|---|
카메라 사용하기 (0) | 2023.02.16 |
month의 week number를 계산하는 extention (0) | 2022.08.09 |
Getx 정리 (0) | 2022.04.01 |
CustomPaint, CustomPainter, Painter, canvas (0) | 2021.07.14 |
- Total
- Today
- Yesterday
- BLE
- Chrome
- UX
- TextField
- 앱개발
- IOS
- DART
- 앱
- plugin
- Flutter
- 플러터
- 크롬
- 한빛미디어
- 에러
- SizedBox
- 디자인
- TextFormField
- Bluetooth
- 이미지
- 문제 해결
- Syncfusion
- 다트
- error
- position
- hide
- 인사이트
- 앱 프로그래밍
- firebase
- UI
- addPostFrameCallback
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |