Daeng iOS

[iOS] Xcode의 info.plist / AppProject 속성 정리 본문

IOS/기타

[iOS] Xcode의 info.plist / AppProject 속성 정리

U_Daeng 2022. 10. 18. 17:51

info.plist

번들을 식별하고 구성하는 키-값 쌍을 포함하는 리소스로, 프로젝트의 기본 정보를 설정하고 구성하는 파일이다

-Application Scene Manifest: 앱의 씬 기반 Lifecycle 지원에 대한 정보

    -Enable Multiple windows: 여러 scene을 설정할 수 있는지 체크하는 속성

    -Scene Configuration: 새 scene을 만들 때 UIKit의 기본 설정값

        -Application Session Role: 2가지 역할 (application/external display)

            -item 0

                -Configuration Name: 설정 이름

                -Delegate Class Name: 대신 코드 실행해 줄 클래스 이름

                -Storyboard Name: 스토리보드 이름

PROJECT

모든 파일, 리소스, 소프트웨어 빌드에 필요한 모든 정보의 저장소이다.

앱을 구축하는 데 사용되는 모든 요소가 포함되어 있으며, 해당 요소 간의 관계 (relationships)를 유지한다.

project는 target을 하나 이상 포함하며 모든 target에 대한 기본 build setting을 정의한다.

  • Info
    • Deployment Target: 지원하는 최소 OS버전
    • Configurations: 다양한 환경에서 테스트를 하기 위해 추가할 수 있음, 하나의 타겟에 대해 다른 버전의 빌드를 설정
    • Localizations: 지원하는 언어(지역) 설정
  • Build Settings
    • product의 빌드 프로세스에서 수행되어야 할 것들을 담고 있는 변수(Variable)이고, 이 설정은 Xcode를 통해 컴파일러에게 전달된다. project레벨과 target레벨에서의 빌드 세팅이 있는데, 특정 target 레벨에서 명시적으로 override 해 주지 않는 한 project레벨의 빌드 세팅이 같은 프로젝트 내의 모든 target에 적용된다.

→ Project 공통 세팅 / Target 구체적 세팅

TARGET

빌드할 product를 지정하며 프로젝트 또는 workspace의 파일 집합에서 product의 빌드 방법을 지정한다.

target은 project의 빌드 속성을 상속하지만, target level에서 다른 설정들을 지정하여 프로젝트 설정을 재정의(override)할 수 있다.

  • General
    • Supported Destinations: 지원 대상
    • Minimum Deployments: 최소 배포 버전
    • Identity: 앱의 카테고리, 이름, 번들 ID, 버전, 빌드 횟수 등 식별 정보
    • Deployment Info: 기기 방향, 상태바 스타일 등 앱을 배포할 때 필요한 항목 설정
    • App Icons and Launch Screen: 앱 아이콘 및 런치 스크린 설정
    • Supported Intents: SiriKit와 상호작용을 할 때 필요한 Intests를 추가
    • Frameworks, Libraries, and Embedded Content: 필요한 프레임워크나 라이브러리를 사용할 때 추가
    • Development Assets: product에는 넣지않고 development 단계에서만 쓸 Assets을 넣는 곳
  • Signing & Capabilities (백그라운드 / Notification …)
    • Signing: 팀, 번들 아이디 등을 설정하는 곳으로 앱 배포, 다른 서비스 사용시에 반드시 필요
  • Info
    파일 유형 및 서비스 정보 추가할 수 있다
    앱과 관련된 속성, 앱이 만들거나 열 수 있는 파일 유형, OS X의 경우 앱에서 제공하는 서비스가 표시된다
    • Custom iOS Target Properties: 사용자 지정 대상 속성
    • Document Type: 앱에서 만들고 편집 가능한 문서 유형 지정하고 iOS 또는 Mac OS에서 해당 문서 유형에 대해 표시되는 사용자 정의 아이콘을 제공
    • Exported Type Identifiers / Imported Type Identifiers : 앱에서 내보내거나 가져올 수 있는 모든 파일 유형에 대해 내보내고 가져온 UTI를 추가
    • URL Types: 사용자 지정 프로토콜을 사용하여 다른 앱과 데이터를 교환하기 위한 사용자 지정 스키마 지정 가능
  • Build Settings
    프로젝트를 구축하는 동안 빌드 시스템의 동작에 영향을 미치는 옵션이 표시된다. target에서 지정하지 않으면 project에서 설정할 값이 그대로 반영된다.
    빌드되는 방법을 설정하는 곳, 아주 중요하고 민감한 값이라 이 값을 설정하는 것에 따라 생산성에 큰 차이가 생길 수도 있고, 알수 없는 오류가 발생할 수가 있다.
    build Setting의 값은 너무나도 많아서 각각의 의미 파악이 어렵다. 따라서 모르는 값은 선택한 후 Xcode의 우측 패널 - Quick Help를 열어보며 바뀌었을 때 어떤 변화가 있을지 알아본 후 바꾼다.
  • Build Phases
    빌드 시 수행하는 작업들 설정하는 곳으로 Compile sources(빌드 할 때 컴파일 할 소스 코드 목록), Copy bundle resources(PRODUCT에 리소스 복사) 등이 있다.
  • Build Rules
    빌드 프로세스 중에 특정 유형의 파일을 처리할 때 빌드 시스템이 사용하는 규칙을 설정한다.

 


https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009248-SW1

 

About Info.plist Keys and Values

About Info.plist Keys and Values To provide a better experience for users, iOS and macOS rely on the presence of special metadata in each app or bundle. This metadata is used in many different ways. Some of it is displayed to the user, some of it is used i

developer.apple.com

https://developer.apple.com/library/archive/featuredarticles/XcodeConcepts/Concept-Targets.html

 

Xcode Target

Xcode Target A target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace. A target defines a single product; it organizes the inputs into the build system—the source files and

developer.apple.com

 

'IOS > 기타' 카테고리의 다른 글

[iOS] AutoLayout 정리  (0) 2022.11.04