
MAUI로 사진 업로드 + 위치정보(GPS) 추출 기능을 구현하다 보면,
플랫폼 간 차이 때문에 예상보다 많은 시간을 소모하게 됩니다.
특히 다중 선택 업로드에서
- iOS는 잘 되는데
- Android에서는 개별 선택은 되지만, 다중 선택 시 위치정보가 사라지는 상황을 많이 겪게 됩니다.
이번 글에서는 실제 구현 과정에서 확인한 iOS vs Android의 차이점을 정리해 봅니다.
1. 권한 모델 차이
iOS 권한 구조
iOS는 권한 모델이 엄격하지만 명확합니다.
- 사진 접근 권한 (Photos)
- 위치 권한 (Location)
이 둘은 완전히 분리되어 있습니다.
중요한 점은,
📌 사진의 위치 메타데이터(EXIF GPS)는
위치 권한이 없어도 사진 접근 권한만으로 읽히는 경우가 많다는 점입니다.
즉,
- 사용자가 사진 접근만 허용
- 사진에 GPS가 포함되어 있다면
- → EXIF의 위치정보를 비교적 안정적으로 읽을 수 있습니다.
Android 권한 구조
Android는 버전별로 권한 모델이 계속 바뀌었습니다.
* Android 12 이하
- READ_EXTERNAL_STORAGE
*Android 13 이상
- READ_MEDIA_IMAGES
- READ_MEDIA_VIDEO
여기에 더해,
- 위치 정보
- 미디어 접근 방식
- 스토리지 정책
이 복합적으로 얽혀 있습니다.
📌 결과적으로 Android에서는
“사진은 읽히는데, 위치 메타데이터는 안 읽히는”
상황이 쉽게 발생합니다.
2. 다중 선택 동작 차이 (가장 큰 문제 구간)
iOS – 안정적인 다중 선택
iOS에서는 Photos Picker 기반의 다중 선택이 OS 레벨에서 매우 안정적입니다.
- 단일 선택 / 다중 선택 모두
- 선택된 이미지의 메타데이터 접근이 일관됨
- 스트림 기반 접근에서도 EXIF(GPS) 유지 확률이 높음
👉 실무 체감:
“권한만 제대로 주면, 다중 선택에서도 위치정보가 잘 따라온다”
Android – 기기/버전/제조사 의존
Android는 상황이 다릅니다.
- 제조사별 갤러리 앱
- Android 버전
- 클라우드 사진(Google Photos)
- ContentResolver 접근 방식
이 조합에 따라 결과가 달라집니다.
특히 문제되는 지점은:
- 다중 선택 시
- ContentResolver.OpenInputStream() 방식으로 접근하면
- EXIF 읽기가 실패하거나 GPS 정보가 null로 나오는 경우
📌 즉,
개별 선택 → 위치 있음
다중 선택 → 위치 없음
이런 현상이 Android에서 매우 흔합니다.
3. 위치 메타데이터(EXIF) 전달 차이
iOS EXIF 특성
- GPS 메타데이터 전달이 비교적 잘 유지됨
- 단, 사용자 설정에서 “위치 제거” 옵션이 켜진 경우
- EXIF 자체에 GPS가 없음
즉, iOS는
- 있으면 잘 준다
- 없으면 명확하게 없다
라는 성향입니다.
Android EXIF 특성
Android는 훨씬 복잡합니다.
- 파일 접근 방식에 따라 EXIF 누락
- 클라우드 경유 이미지의 경우 GPS 제거 가능
- 제조사 갤러리 앱이 메타데이터를 재가공하는 경우 존재
특히,
- URI 기반 접근
- 스트림 복사 과정
- 에서 EXIF가 손실되는 사례가 많습니다.
4. 실무에서 느낀 결정적 차이
정리하면 아래 한 줄로 요약됩니다.
✅ iOS
- 권한만 확보하면
- 다중 선택 포함
- 위치 메타데이터가 안정적으로 읽힘
⚠️ Android
- 권한만으로는 부족
- 파일 접근 방식 중요
- 기기/버전/갤러리 앱 영향 큼
- 다중 선택 시 EXIF 손실 가능성 높음
5. MAUI에서의 현실적인 대응 전략
실무적으로는 다음 접근이 안전합니다.
* iOS
- EXIF 기반 위치정보 신뢰 가능
*Android
- EXIF는 “있으면 쓰고, 없을 수 있음” 전제로 설계
필요하다면: 촬영 시점에 위치를 직접 기록, 업로드 시 별도 위치 권한으로 GPS 재취득
📌 결론적으로
Android에서는 “사진 = 위치”라는 가정을 하면 안 됩니다.
MAUI는 크로스 플랫폼이지만,
사진 / 위치 / 권한 영역은 절대 동일하게 동작하지 않습니다.
특히 다중 선택 업로드 + 위치정보는
- iOS 기준으로 설계하면 Android에서 반드시 문제가 터집니다.
이번 경험처럼,
“개별 등록은 되는데, 다중 선택에서만 위치가 사라진다”
라는 증상은 Android의 구조적 특성에 가깝습니다.
이 글이
MAUI로 사진 업로드 기능을 구현하시는 분들께 도움이 되길 바랍니다.
'HJSoft' 카테고리의 다른 글
| iOS는 기본 제공, 안드로이드는 다중 선택 시 위치 정보 깨짐 – HJSoft가 MAUI로 해결한 현장사진 관리앱 (0) | 2026.02.20 |
|---|---|
| 엑셀이 설치돼 있는데 자동화가 안 될 때 (엑셀버전 충돌) (0) | 2026.02.06 |
| [앱스토어 등록 대장정]MAUI iOS 앱 아이콘 복구부터 WCF 로그인 성공까지 (0) | 2026.01.31 |
| 카톡 자동발송에 이은 - '내용 수집' 자동화 (0) | 2026.01.24 |
| “단순히 사진을 올리는 앱이 아닙니다.여러분의 증빙 데이터를 지켜주는 기술입니다.” (0) | 2026.01.12 |