Info.Plist(information property list file)란?
공식문서 참조
https://developer.apple.com/documentation/bundleresources/information_property_list
Apple Developer Documentation
developer.apple.com
기본적인 예제를 몇가지 공부해보고 첫 주차 라이징캠프 교육을 들었습니다.
첫 주차 과제 중에 info.plist 조사해오기가 있었어서 기록해두고자 합니다.
plist를 공식문서에 따라 정리해보면 아래와 같습니다.
- 번들을 구성하고 식별하기 위한 필수적인 정보가 담겨있는 구조화된 텍스트 파일.
- 유니코드 UTF-8로 인코딩되며 내용은 XML을 사용하여 편집가능.
- key와 value 형태로 앱 구성 정보를 다룸.
- 번들로 제공되는 모든 실행파일(플러그인, 프레임워크 및 앱)은 필수적으로 가지고 있어야하는 파일.
- xcode에서 프로젝스 생성시 자동으로 생성
여기서 번들이 정확히 무엇인지 몰랐었는데요. 번들이란?
Bundle : 파일 시스템의 하나의 디렉토리로 실행가능한 코드와 이와 연관된 사진, 소리 nib 파일 등의 자원들을 한 곳에 같이 묶어놓은 것
//네비게이터에서 info.plist를 눌렀을 때 모습


plist는 안드로이드에서 필요한 권한설정과 앱 컴포넌트(액티비티, 서비스, 브로드캐스트 리시버, 컨텐트 프로바이더) 등의 정보를 담는 manifest와 비슷한 개념인 것 같다고 느꼈습니다.
(참고)
Apple Developer Documentation
developer.apple.com
plist 구성
- ⇒ 이 점은 주제를 나타냅니다.
- ⇒ 이 빈 점은 plist 속성을 나타냅니다.
- Categorization
- Bundle OS Type code : 번들의 타입
- Application Category :
- Identification
- Bundle identifier : 어플리케이션의 고유 식별자
- Naming
- Bundle name : 유저에게 보이는 어플리케이션 짧은 이름
- Bundle display name : siri에서 사용되고 ios홈 화면에서 보여지는이름.
- Accessibility Bundle Name : 텍스트-음성 변환 작업시 대체될 이름.
- Bundle Version
- Bundle version: 번들을 식별하는 빌드 버전
- Bundle version string,short : 번들의 릴리즈, 버전 번호
- Copyright : 저작권 고지서
- Operating System Version
- Minimum system version : 앱을 실행하기 위한 최소 운영체제 버전
그밖의 주요한 속성들은 우선 Scene과 private관련으로 각각 정리하였습니다.
info.plist (Scene관련)
- scene이란?
- 앱의 사용자 인터페이스 및 컨텐츠 배경
- UI 하나의 인스턴스를 나타내는 windows와 ViewController가 들어있다.
- scene들은 같은 메모리와 앱 프로세스 공간을 공유하며 서로 동시에 실행
- ios12 까지는 하나의 앱에 하나의 window 구성이었으나 ios13 이후부터는 window 개념이 scene으로 대체되며 하나의 앱에서 여러개의 scene을 가질 수 있게됨.
- Enable Multiple Windows : 여러 Scene을 설정할 수 있는지 체크하는 속성
- Supports Tabbled Scene Collection : 맥 catalyst로 빌드된 앱이 자동 탭 모드를 지원하는지 여부.
- Scene Configuration : 새 Scene을 만들 때 UIKit의 기본값 설정
- External Display Session Role : 외부 연결된 디스플레이를 사용할 때 쓰는 Scene
- Application Session Role : 2가지 역할(Application / External Display)
- Configuration Name : 설정이름
- Delegate Class Name : 대신 코드 실행해줄 클래스 이름
- Stroyboard Name : 스토리보드 이름
- Application Scene Manifest : Scene기반의 생명주기 관련 정보 설정
- info.plist (Scene관련)
Apple Developer Documentation
developer.apple.com
info.plist (private관련)
블루투스
- Privacy - Bluetooth Always Usage Description : 블루투스에 접근
캘린더와 리마인더
- Privacy - Calendars Usage Description : 유저 캘린더 데이터에 접근
- Privacy - Reminders Usage Description : 유저 리마인더 데이터에 접근
카메라와 마이크
- Privacy - Camera Usage Description : 장치 카메라에 접근
- Privacy - Microphone Usage Description : 마이크에 접근
Contacts
- Privacy - Contacts Usage Description : 유저의 contacts에 접근 (ex. 전화번호부)
FaceID
- Privacy - Face ID Usage Description : face Id 인증 기능 요청
파일과 폴더
- Privacy - Desktop Folder Usage Description : 유저 데스크톱의 폴더에 접근
- Privacy - Documents Folder Usage Description : 유저’s 문서 폴더에 접근
- Privacy - Downloads Folder Usage Description : 유저의 다운로드 폴더에 접근
- Network Volumes Usage Description : 네트워크 볼륨 파일에 접근
- Privacy - Removable Volumes Usage Description : 제거 가능한 볼륨의 파일에 접근 (USB)
- Privacy - Access to a File Provider Domain Usage Description
- :파일 제공자에 의해 관리되는 파일에 접근
헬스
- Privacy - Health Records Usage Description : 건강 기록 읽기 권한
- Privacy - Health Share Usage Description : HealthKit store에서의 샘플을 읽는 권한
- Privacy - Health Update Usage Description : HealthKit store의 샘플을 저장하는 권한
위치
- Privacy - Location Always and When In Use Usage Description : 실시간 유저 위치 정보 접근
- Privacy - Location Usage Description : 유저의 위치 정보에 접근
- Privacy - Location When In Use Usage Description : 앱이 포그라운드일 때 유저의 위치 정보에 접근
- Privacy - Location Temporary Usage Description Dictionary : 사용자 위치에 임시 접근을 요청하는 메시지 모음
- Privacy - Location Default Accuracy Reduced : 디폴트로 감소된 위치 정확도 사용 여부 부울 값
MediaPlayer
- Privacy - Media Library Usage Description : 유저 media library 접근
Motion
- Privacy - Motion Usage Description : 장치 모션 데이터에 접근
네트워킹
- Privacy - Local Network Usage Description : 로컬 네트워크 접근
- Privacy - Nearby Interaction Usage Description : 근처 장치와 interaction session 시작 권한
NFC
- Privacy - NFC Scan Usage Description : 장치의 NFC 하드웨어에 접근
Photos
- Privacy - Photo Library Additions Usage Description : 유저의 포토 library에 접근
- Privacy - Photo Library Usage Description
Security
- Privacy - Tracking Usage Description : (장치or사용자)사용하는 데이터 추적 권한
- Privacy - AppleEvents Sending Usage Description : 애플 이벤트 보내기 기능 요청
- Privacy - System Administration Usage Description : 시스템 구성 조정 요청
Siri
- Privacy - Siri Usage Description : 시리의 유저데이터 접근
Speech
- Privacy - Speech Recognition Usage Description : 음성 인식 서버로 사용자 데이터 요청
TV
- Privacy - Video Subscriber Account Usage Description : Tv공급자 계정으로 접근
Apple Developer Documentation
developer.apple.com
'IOS' 카테고리의 다른 글
iOS) URLSession 정리 (0) | 2022.05.07 |
---|---|
iOS) URLSession 사용해보기전 네트워크 구조 정리 (0) | 2022.05.07 |
[iOS] SnapKit 사용해보기, Preview Provider (0) | 2022.05.06 |
iOS) 코드로 뷰 배경 색 적용(custom Color) (0) | 2022.03.18 |
iOS) AppDelegate와 sceneDelegate 정리 (0) | 2022.03.15 |
댓글