본문 바로가기
IOS

iOS) Plist 정리

by eigen96 2022. 3. 16.
728x90

Info.Plist(information property list file)란?

 

공식문서 참조

https://developer.apple.com/documentation/bundleresources/information_property_list

 

Apple Developer Documentation

 

developer.apple.com

기본적인 예제를 몇가지 공부해보고 첫 주차 라이징캠프 교육을 들었습니다.

첫 주차 과제 중에 info.plist 조사해오기가 있었어서 기록해두고자 합니다.  

 

 

plist를 공식문서에 따라 정리해보면 아래와 같습니다.

  1. 번들을 구성하고 식별하기 위한 필수적인 정보가 담겨있는 구조화된 텍스트 파일.
  2. 유니코드 UTF-8로 인코딩되며 내용은 XML을 사용하여 편집가능.
  3. key와 value 형태로 앱 구성 정보를 다룸.
  4. 번들로 제공되는 모든 실행파일(플러그인, 프레임워크 및 앱)은 필수적으로 가지고 있어야하는 파일.
  5. xcode에서 프로젝스 생성시 자동으로 생성
  6.  

여기서 번들이 정확히 무엇인지 몰랐었는데요. 번들이란?

Bundle : 파일 시스템의 하나의 디렉토리로 실행가능한 코드와 이와 연관된 사진, 소리 nib 파일 등의 자원들을 한 곳에 같이 묶어놓은 것

//네비게이터에서 info.plist를 눌렀을 때 모습

 

plist는 안드로이드에서 필요한 권한설정과 앱 컴포넌트(액티비티, 서비스, 브로드캐스트 리시버, 컨텐트 프로바이더) 등의 정보를 담는 manifest와 비슷한 개념인 것 같다고 느꼈습니다.

 

(참고)

Apple Developer Documentation

 

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이란?
    1. 앱의 사용자 인터페이스 및 컨텐츠 배경
    2. UI 하나의 인스턴스를 나타내는 windows와 ViewController가 들어있다.
    3. scene들은 같은 메모리와 앱 프로세스 공간을 공유하며 서로 동시에 실행
    4. ios12 까지는 하나의 앱에 하나의 window 구성이었으나 ios13 이후부터는 window 개념이 scene으로 대체되며 하나의 앱에서 여러개의 scene을 가질 수 있게됨.
    Apple Developer Documentation
    • 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

 

 

 

728x90

댓글