728x90
앱개발을 하다 info.plist에 권한 요청을 추가하지 않아 카메라 / 폴더 접근 등 중요한 기능을 사용해야 될 때 사용하지 못한 적이 많았다.
그래서 애플 공식 문서에 나와있는 info.plist의 권한을 카테고리별로 총정리하려 한다.
먼저 info.plist가 도대체 무엇이고 무슨 역할을 하고 있을까?
Info.plist 란?
Info.plist는 iOS, macOS 앱에서 사용되는 중요한 구성 파일이라고 할 수 있다.
이 파일은 앱의 메타데이터와 설정 정보를 포함하고 있으며, 키-값의 쌍으로 구성된다.
Info.plist는 기본적으로 앱의 기본 정보를 제공한다.
앱의 기본 정보로는 뭐가있을까? -> 버전, 번들 ID 등이 있다고 보면 된다.
또한 우리는 Info.plist를 시스템 권한 요청 시 사용자에게 표시할 메시지 정의, 그리고 앱의 기능과 필요한 디바이스 기능 등의 요구사항을 명시할 때 자주 쓰게 된다. 이를 통해 개발자는 앱이 왜 특정 권한을 필요로 하는지 사용자에게 명확히 설명할 수 있다.
그럼 이제 애플 공식 문서에 나와있는 주요 프라이버시 관련 키들과 그 용도를 카테고리별로 정리해보자.
권한 총정리
2024.08.13 기준. Deprecated 된 권한 제외.
Bluetooth
- NSBluetoothAlwaysUsageDescription: 앱이 Bluetooth에 접근해야 하는 이유를 설명하는 메시지
Calendar and Reminders
- NSCalendarsFullAccessUsageDescription: 앱이 사용자의 캘린더 데이터를 읽고 쓰는 접근 권한을 요청하는 이유를 설명하는 메시지
- NSCalendarsWriteOnlyAccessUsageDescription: 앱이 캘린더 이벤트를 생성하는 접근 권한을 요청하는 이유를 설명하는 메시지
- NSRemindersFullAccessUsageDescription: 앱이 사용자의 리마인더 데이터를 읽고 쓰는 접근 권한을 요청하는 이유를 설명하는 메시지
Camera and Microphone
- NSCameraUsageDescription: 앱이 디바이스의 카메라에 접근하는 이유를 설명하는 메시지
- NSMicrophoneUsageDescription: 앱이 디바이스의 마이크에 접근하는 이유를 설명하는 메시지
Contacts
- NSContactsUsageDescription: 앱이 사용자의 연락처에 접근하는 이유를 설명하는 메시지
Face ID
- NSFaceIDUsageDescription: 앱이 Face ID로 인증하는 기능을 요청하는 이유를 설명하는 메시지
Files and Folders
- NSDesktopFolderUsageDescription: 앱이 사용자의 Desktop 폴더에 접근하는 이유를 설명하는 메시지
- NSDocumentsFolderUsageDescription: 앱이 사용자의 Documents 폴더에 접근하는 이유를 설명하는 메시지
- NSDownloadsFolderUsageDescription: 앱이 사용자의 Downloads 폴더에 접근하는 이유를 설명하는 메시지
- NSNetworkVolumesUsageDescription: 앱이 네트워크 볼륨의 파일에 접근하는 이유를 설명하는 메시지
- NSRemovableVolumesUsageDescription: 앱이 이동식 볼륨의 파일에 접근하는 이유를 설명하는 메시지
- NSFileProviderDomainUsageDescription: 앱이 파일 제공자가 관리하는 파일에 접근하는 이유를 설명하는 메시지
Game Center
- NSGKFriendListUsageDescription: 앱이 사용자의 Game Center 친구 목록에 접근하는 이유를 설명하는 메시지
Health
- NSHealthClinicalHealthRecordsShareUsageDescription: 앱이 임상 기록을 읽는 권한을 요청하는 이유를 설명하는 메시지
- NSHealthShareUsageDescription: 앱이 HealthKit 저장소에서 샘플을 읽는 권한을 요청하는 이유를 설명하는 메시지
- NSHealthUpdateUsageDescription: 앱이 HealthKit 저장소에 샘플을 저장하는 권한을 요청하는 이유를 설명하는 메시지
Home
- NSHomeKitUsageDescription: 앱이 사용자의 HomeKit 구성 데이터에 접근하는 이유를 설명하는 메시지
Location
- NSLocationAlwaysAndWhenInUseUsageDescription: 앱이 항상 사용자의 위치 정보에 접근하는 이유를 설명하는 메시지
- NSLocationWhenInUseUsageDescription: 앱이 포그라운드에서 실행 중일 때 사용자의 위치 정보에 접근하는 이유를 설명하는 메시지
- NSLocationTemporaryUsageDescriptionDictionary: 앱이 사용자의 위치에 임시로 접근하는 이유를 설명하는 메시지 모음
Media Player
- NSAppleMusicUsageDescription: 앱이 사용자의 미디어 라이브러리에 접근하는 이유를 설명하는 메시지
Motion
- NSMotionUsageDescription: 앱이 디바이스의 모션 데이터에 접근하는 이유를 설명하는 메시지
- NSFallDetectionUsageDescription: 앱이 낙상 감지 이벤트 데이터에 접근하는 권한을 요청하는 이유를 설명하는 메시지
Networking
- NSLocalNetworkUsageDescription: 앱이 로컬 네트워크에 접근하는 이유를 설명하는 메시지
- NSNearbyInteractionUsageDescription: 앱이 근처 기기와의 상호작용 세션을 시작하는 권한을 요청하는 이유를 설명하는 메시지
- NSNearbyInteractionAllowOnceUsageDescription: 앱이 근처 기기와의 상호작용 세션을 한 번 시작하는 권한을 요청하는 이유를 설명하는 메시지
NFC
- NFCReaderUsageDescription: 앱이 디바이스의 NFC 하드웨어에 접근하는 이유를 설명하는 메시지
Photos
- NSPhotoLibraryAddUsageDescription: 앱이 사용자의 사진 라이브러리에 추가만 하는 접근 권한을 요청하는 이유를 설명하는 메시지
- NSPhotoLibraryUsageDescription: 앱이 사용자의 사진 라이브러리에 접근하는 이유를 설명하는 메시지
Security
- NSUserTrackingUsageDescription: 앱이 사용자 또는 디바이스 추적을 위한 데이터 사용 권한을 요청하는 이유를 설명하는 메시지
- NSAppleEventsUsageDescription: 앱이 Apple 이벤트를 보내는 능력을 요청하는 이유를 설명하는 메시지
Sensors
- NSSensorKitUsageDescription: 앱의 연구 목적에 대한 간단한 설명
- NSSensorKitUsageDetail: 앱이 수집하는 특정 정보에 대한 키를 포함하는 딕셔너리
- NSSensorKitPrivacyPolicyURL: 앱의 연구 관련 개인정보 보호정책을 표시하는 웹페이지 하이퍼링크
Siri
- NSSiriUsageDescription: 앱이 사용자 데이터를 Siri에 보내는 이유를 설명하는 메시지
Speech
- NSSpeechRecognitionUsageDescription: 앱이 사용자 데이터를 Apple의 음성 인식 서버로 보내는 이유를 설명하는 메시지
TV
- NSVideoSubscriberAccountUsageDescription: 앱이 사용자의 TV 제공자 계정에 접근하는 이유를 설명하는 메시지
Vision
- NSWorldSensingUsageDescription: 앱이 이미지 추적, 평면 감지 또는 장면 재구성에 접근하는 이유를 설명하는 메시지
- NSHandsTrackingUsageDescription: 앱이 사용자의 손 위치와 위치를 추적하는 접근 권한을 요청하는 이유를 설명하는 메시지
Wallet
- NSFinancialDataUsageDescription: 앱이 Wallet에 저장된 재무 데이터에 접근하는 이유를 설명하는 메시지
- NSIdentityUsageDescription: 앱이 신원 정보에 접근하는 이유를 설명하는 메시지
728x90
'Swift' 카테고리의 다른 글
[UIKit] Navigation Bar 숨기기 (0) | 2024.08.05 |
---|---|
[UIKit] AppDelegate와 SceneDelegate의 차이 (0) | 2024.08.04 |