A resource containing key-value pairs that identify and configure a bundle.
= bundle을 식별하고 구성하는 키-값 쌍들을 포함하는 리소스
(bundle: 실행 가능한 코드와 자원들을 한 공간에 그룹짓는 directory. 쉽게 말해 하나의 '프로젝트')
- 운영 체제가 App과 상호 작용하는 데 사용하는 iOS 모바일 앱의 구성에 대한 중요한 정보가 포함된 설정 파일이며, 모바일 App이 컴파일될 때 자동으로 생성된다.
- 이 정보는 App store와 iOS에서 App의 기능을 확인하고 주요 리소스를 찾는 데 사용되며 UIKit은 유저가 제공한 이 정보를 이용하여 앱 scene을 만든다.

- Bundle name : 사용자가 보는 앱의 실제 이름
- Bundle identifier : 앱의 식별자
- InfoDictionary version : info.plist의 현재 버전
- Main storyboard file base name : 메인 스토리보드 파일 이름
- Bundle version : 번들의 내부 빌드용 버전 (앱의 버전)
- Launch screen interface file base name : launch screen 파일 이름
- Executable file : 번들의 실행 파일 이름
- Application requires iPhone environment : 앱이 iOS에서 실행되어야 하는지 여부
- Supported interface orientations (iPhone) : 앱이 지원하는 인터페이스
- Application supports indirect input events : 앱이 일반적으로 간접 입력 메커니즘을 지원함을 나타내는 부울 값 (간접 입력 지원 장치를 지원함을 나타내는 부울값)
- Bundle OS Type code : 번들 OS 종류 코드 ?
- Development localization : 개발 언어의 현지화?
- Supported interface orientations (iPad) : 앱이 지원하는 인터페이스 (아이패드용)
- Bundle version string (short) : 번들의 배포 및 버전 번호
- Application Scene Manifest : 앱의 scene 기반 라이프사이클 지원에 대한 정보
- Enable Multiple Windows : 여러 Scene을 설정할 수 있는지 체크
- Scene Configuration : 새 Scene을 만들 때 UIKit의 기본 설정값
- Application Session Role
1) Configuration Name: 설정 이름
2) Delegate Class Name: 대신 코드 실행할 클래스의 이름
3) Storyboard Name: 스토리보드 이름
privacy
- Privacy - Access to a File Provider Domain Usage Description : 파일 접근 요청 이유
- Privacy - AppleEvents Sending Usage Description : 이벤트 전송 기능 요청 이유
- Privacy - Bluetooth Always Usage Description :블루투스 접근 요청 이유
- Privacy - Calendars Usage Description : 캘린더 접근 요청 이유
- Privacy - Camera Usage Description : 카메라 접근 요청 이유
- Privacy - Contacts Usage Description : 연락처 접근 요청 이유
- Privacy - Desktop Folder Usage Description : 바탕화면 폴더 접근 요청 이유
- Privacy - Documents Folder Usage Description : 문서 폴더 접근 요청 이유
- Privacy - Downloads Folder Usage Description : 다운로드 폴더 접근 요청 이유
- Privacy - Driver Extension Usage Description : 드라이버 확장 번들 설치 이유
- Privacy - Face ID Usage Description : Face ID 인증 기능 요청 이유
- Privacy - Local Network Usage Description : 로컬 네트웨크 접근 요청 이유
- Privacy - Location Always Usage Description : 항상 사용자의 위치 접근 요청 이유
- Privacy - Media Library Usage Description : 미디어 라이브러리 접근 요청 이유
- Privacy - Microphone Usage Description : 마이크 접근 요청 이유
- Privacy - Motion Usage Description : 모션 데이터 접근 요청 이유
- Privacy - NFC Scan Usage Description :NFC하드웨어 접근 요청 이유
- Privacy - Photo Library Additions Usage Description : 사진 라이브러리에 대한 추가 접근만 요청하는 이유
- Privacy - Photo Library Usage Description : 사진 라이브러리 접근 요청 이유
- Privacy - Reminders Usage Description : 리마인더 접근 요청 이유
- Privacy - Siri Usage Description: 사용자 데이터를 Siri로 보내도록 요청하는 이유
- Privacy - Speech Recognition Usage Description : 사용자 데이터를 Apple 음성인식 서버로 전송 요청 이유
- Privacy - System Extension Usage Description : 시스템 확장 번들 설치 이유
- Privacy - Tracking Usage Description : 사용자 또는 장치 추적을 위해 데이터 사용 권한 요청 이유
📚 AppProject
Xcode Target
- 하나의 Target은 하나의 Product (Xcode에서 Build를 실행하여 생성되는 Product)
- 프로젝트는 하나 이상의 Target을 포함 가능
- Target별로 빌드 설정 다르게 가능
- 프로젝트는 프로젝트의 모든 Target에 대한 기본 build setting을 정의
(여기서 말하는 Product는 앱이 될 수도 있고, 프레임워크가 될 수도 있고, Unit Test번들일 수도있다)
[출처]
https://velog.io/@leeyoungwoozz/iOS-Project-Target-Scheme-%EB%93%B1%EB%93%B1
각 탭 바의 주제
- Gerneral : ID, 서명 및 배포 옵션과 같이 가장 일반적으로 수정된 대상 설정을 조정
- Singing & Capabilities : 앱에 승인, 앱 서비스를 활성화.
- Resource Tags : 필요한 자원들을 식별하고 관리. (Xcode는 태그 생성 및 편집, 태그의 일부인 리소스 추가 및 삭제, 태그와 관련된 리소스가 운영 체제에 의해 다운로드되는 시기 지정을 위한 도구를 제공)
- Info : Info.plist 값, 지원되는 문서타입, 로컬라이제이션 등을 포함하여 프로젝트나 타겟의 속성을 편집.
- Build Settings : 타겟에서 제품을 컴파일, 링크 및 생성하고 프로젝트 또는 시스템에서 상속된 설정을 식별하는 데 사용할 옵션 지정(Xcode가 소스 파일을 컴파일하는 방법, 실행 파일을 연결하는 방법, 디버그 정보를 생성하는지 여부, 코드를 패키징하고 배포하는 방법 등 빌드 프로세스의 모든 측면을 제어)
- 프로젝트를 구축하는 동안 빌드 시스템의 동작에 영향을 미치는 옵션을 사용자 정의
- 컴파일러나 링커에게 전달할 옵션들을 저장해놓은 목록
- 빌드 설정은 유닉스 환경변수, Xcode 내장 변수, 프로젝트, 타깃 순으로 계층 구조를 이루어서 상위 계층의 값을 하위 계층에서 덮어쓰는 방식
- Build Phases : 프로젝트로 빌드하는 동안 빌드 시스템에서 수행한 작업을 편집하고 재정렬. 타깃의 제품을 빌드하기 위해 필요한 파일들을 단계별로 어떻게 처리할지 구성한 목록 (컴파일할 원본 파일, 실행할 스크립트 및 최종 제품에 포함할 리소스를 포함하여 빌드 중에 수행할 작업 지정)
Specify the tasks to perform during a build, including the source files to compile, the scripts to run, and the resources to include in the final product
- Build Rules : 빌드 프로세스 중에 특정 유형의 파일을 처리할 때 빌드 시스템이 사용하는 규칙을 사용자 지정. 컴파일 단계와 리소스 복사 단계에서 파일 종류별로 어떤 어떻게 처리할지 규칙을 결정한다.확장자 매칭 조건과 처리할 액션에 대한 지정을 할 수 있는데 기본적인 파일들에 대한 처리 규칙은 이미 자동적으로 생성된다.
(Xcode에 프로젝트의 사용자 지정 파일 형식을 빌드하는 방법을 알려주고 각 파일에 대한 빌드 프로세스를 최적화하기 위한 종속성 정보를 제공)
[출처]
https://cau-meng2.tistory.com/109
https://dongminyoon.tistory.com/41