[RC_week1-1] info.plist / AppProject 속성
iOS

[RC_week1-1] info.plist / AppProject 속성

728x90

Xcode 구성

- Navigator area

: 프로젝트의 다양한 부분에 빠르게 액세스 할 수 있다.

- Editor area

: 소스 코드, 사용자 인터페이스 및 기타 리소스를 편집 할 수 있다.

- Utility area

: 선택한 품목에 대한 정보와 기성품 자원에 대한 액세스를 제공한다. 유틸리티 영역은 두 부분으로 나뉜다. 맨 위는 관리자 창 에서 네비게이터 또는 편집 영역에서 선택한 항목에 대한 정보를 보고 편집하고 아래쪽은 라이브러리 창으로, 사용자 인터페이스 요소, 코드 스 니펫 및 기타 리소스에 액세스 할 수 있다.

- Toolbar

: 앱을 빌드하고 실행하고, 작업 실행 진행 상황을보고, 작업 환경을 구성하는 데 사용된다.

 

프로젝트 구성 파일

- AppDelegate.swift

: 앱의 실행 주기를 관리하는 파일, 앱을 실행하거나 종료 또는 백그라운드를 실행할 때 하는 일 관리

- SceneDelegate.swift

: 아이패드에서 생긴 멀티 윈도우와 관련되서 생성되는 파일

- ViewController.swift

: 화면에 보이는 뷰에서 처리하는 내용을 담은 파일, 뷰 하나당 해당 파일 하나씩 매칭

- Main.storyboard

: 앱의 내용을 시각적으로 쉽게 이해하고 프로그래밍할 수 있도록 그림으로 표현되는 파일, 화면 구성을 해서 보여주는 파일

- Assets.xcassets

: 앱의 아이콘을 보관하는 장소, 여기에 이미지를 넣어주면 앱 다운로드시 화면에 내가 원하는 이미지의 앱아이콘 생성

- LaunchScreen.storyboard

: 앱이 실행될 떄 잠시 나타나는 스플래시 화면을 만드는 스토리보드

- Info.plist

: 앱이 실행되는데 필요한 정보를 저장하는 파일

 

Info.plist 구성

- Localization native development region : 앱이 만들어진 주 지역, ISO 639등 언어 분류를 위한 명명된 코드를 입력한다.

- Executable file : 실행 가능한 번들의 이름

- Bundle identifier : 애플리케이션의 고유 식별자

- infoDictionary version : 프로퍼티 리스트 구조의 현재 버젼, 자동으로 키를 더하기 때문에 값을 수정하지 말기.

- Bundle name : 사용자가 보는 애플리케이션의 실제 이름

- Bundle creator OS Type code : 번들의 유형을 설정, 코드 - APPL / 프레임워크 - FMWK / 번들 - BNDL

- Bundle version string(short) : 번들의 배포 및 버젼 번호, 배포용으로 주로 사용하는 것 같다.

- Bundle version : 번들의 버젼 번호, 배포용이 아닌 내부 빌드용으로 사용

- Application requires iPhone environment : 반드시 아이폰에서 작동해야 하는지 체크하는 속성

- Application Scene Manifest : Scene 기반의 생명주기 관련 정보 설정

  • Enable Multiple Windows : 여러 Scene을 설정할 수 있는지 체크하는 속성
  • Scene Configuration : 새 Scene을 만들 때 UIKit의 기본 설정값을 설정
    • Application Session Role : 2가지 역할 (Application / External Display)
      • Item 0
        • Configuration Name: 설정 이름
        • Delegate Class Name: 대신 코드 실행해줄 클래스 이름
        • Storyboard Name: 스토리보드 이름

- Application supports indirect input events: 간접 입력 장치 지원 유무를 선택하는 속성

- Launch screen Interface file base name: 런치스크린 파일 이름

- Main storyboard file base name: 메인 스토리보드 파일 이름

- Required device capabilities: 디바이스와 연관된 특성을 설정. 가속도, AR, camera, gps 등등..

- Supported interface orientations: 앱에서 지원하는 회전 처리 설정

- Supported interface orientations (iPad): 앱에서 지원하는 회전 처리 설정 (iPad 용)

AppProject 속성

1. PROJECT

: 하나 이상의 소프트웨어를 만드는 데 필요한 모든 파일, 리소스, 정보를 위한 저장소

프로젝트는 모든 타겟에 대한 기본 빌드 설정을 정의

 

- INFO

  • Deployment Target
  • Configuration: 기본적으로 Debug, Release를 지원하며 개발 버전, 릴리즈버전, 무료버전, 유료버전, 베타 등 다양한 환경에서 테스트를 할 때 사용함
  • Localization: 로컬라이징 해주고 싶은 언어를 설정해주는 곳, 나라별로 언어를 설정하는 것을 로컬라이징이라 함.

- Build Settings

: 아주 중요하고 민감한 값, Build Setting을 저장하고 있는 파일이 project.pbxproj 파일

  • 수정된 Build Setting 값들만 모아보기

: 좌측 상단의 필터 옵션- Basic / Customized / All
기본값이 아닌 Build Setting은 Customized 필터 옵션에서 모아서 볼 수 있음.

  • Target Build Setting 보다는 Project Build Setting 이용

: 프로젝트 안에서도 개발용 타겟, 배포용 타겟을 별도로 관맇하는 경우가 있음.

하지만 Target Build Setting을 다르게 해야 하는 경우보다 같아야 하는 경우가 더 많음.

  • Level 단위로 Build Setting보기

: 현재 적용되어 있는 Build Setting이 어느 차원에서 정의되었는지(기본값을 쓰고 있는지, 프로젝트에 적용된 값을 쓰고 있는지, 타겟별로 override를 한 것인지, xcconfig에서 정의된 값을 쓰는지) 등을 볼 수 있음

  • Quick Help

Build Setting의 값은 너무 많고 각각의 값에 의미를 파악하기 어려움.

우측 패널을 열어서, 각 값들에 대한 보다 상세한 설명을 볼 수 있음.

→ Build Settings에 대한 세세한 내용은 추후에 추가하도록 하겠다. (Quick Help 이용)

- Swift Packages

: 자신이 만든 Swift Package를 추가하는 곳

Swift Package Manager는 Swift3.0과 함께 공식적으로 출시된 MacOS 및 Linux에서 Swift 라이브러리 및 에플리케이션을 만드는 새로운 방법.

상호 의존하는 라이브러리를 사용할 때 발생할 수 있는 의존성 문제를 해결.

 

2. TARGET

: Xcode에서 Build를 실행하여 생성되는 최종 제품

(앱이 될 수도 있고, 프레임워크가 될 수도 있고, Unit Test번들일 수도 있음)

- General

: 앱별 대상 설정 적용

  • 번들 식별자, 운영 체제 및 App Store에서 앱을 식별하는 문자열
  • 앱을 게시 할 버전 번호
  • 앱의 특정 빌드를 식별하는 빌드 번호
  • Apple Developer Program 개발 팀의 이름
  • 앱이 실행되는 가장 초기 iOS 버전 인 배포 대상
  • 앱을 빌드 할 기기
  • 앱이 시작될 때로드 할 기본 사용자 인터페이스 파일
  • 앱이 지원하는 사용자 인터페이스 방향 (세로, 거꾸로, 가로 왼쪽, 가로 오른쪽)

 

- Signing & Capabilities

: 기술 기능 추가

iCloud, Game Center, In-App Purchase 및 Maps와 같은 다양한 Apple 기술을 앱에 추가

Xcode는 필요한 권한 파일을 프로젝트에 추가하고 대상을 필요한 프레임 워크에 연결

 

- Resource Tags

: 디맨드 리소스 태그 추가

주문형 리소스 는 필요할 때만 다운로드하는 앱 콘텐츠

사용자가 다운로드 한 앱 번들과 별도로 App Store에서 호스팅됩니다. 주문형 리소스를 사용하여 더 작은 앱, 더 빠른 다운로드 및 더 풍부한 앱 콘텐츠를 사용

태그를 사용하여 대상에서 온 디맨드 리소스를 식별하고 관리

 

- Info

: 파일 유형 및 서비스 정보 추가

앱과 관련된 속성, 앱이 만들거나 열 수있는 파일 유형, OS X의 경우 앱에서 제공하는 서비스가 표시

  • Custom iOS Target Properties

: 대부분의 사용자 지정 대상 속성은 Xcode 인터페이스의 다른 부분에서 수정됨

  • Document Types

: 문서 유형 설정은 앱에서 만들고 편집 할 수있는 문서 유형을 지정하고 iOS 또는 Mac OS에서 해당 문서 유형에 대해 표시되는 사용자 정의 아이콘을 제공

  • Exported Type Identifiers / Imported Type Identifiers

: 앱에서 내보내거나 가져올 수있는 모든 파일 유형에 대해 내보내고 가져온 UTI를 추가. 일반적으로 앱에 고유 한 문서 유형과 달리 UTI는 일반 텍스트 또는 .png. 예를 들어 UTI는 앱간에 클립 보드에 복사 및 붙여 넣기를 지원

  • URL Types

: URL 유형 설정을 사용하면 사용자 지정 프로토콜을 사용하여 다른 앱과 데이터를 교환하기위한 사용자 지정 스키마를 지정 가능

 

- Buid Settings / Phases / Rules

제품 빌드를위한 빌드 설정 및 빌드 단계 형태의 지침.  프로젝트의 빌드 설정을 상속.

대부분의 개발자는 이러한 설정을 거의 변경할 필요가 없지만 대상 수준에서 다른 설정을 지정하여 프로젝트의 빌드 설정을 재정의 할 수 있음. 프로젝트 편집기에서 대상을 선택하여 정보, 빌드 설정 또는 빌드 단계 창에서 대상 설정을 수정

 

 

[출처]

https://developer.apple.com/library/archive/documentation/ToolsLanguages/Conceptual/Xcode_Overview/WorkingwithTargets.html#//apple_ref/doc/uid/TP40010215-CH32-SW1

 https://zeddios.tistory.com/706 

https://xcodebuildsettings.com/

https://velog.io/@minb_dev/AppProject-%EC%86%8D%EC%84%B1-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

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

https://aimreach.tistory.com/45

https://ozofweird.tistory.com/entry/iOS-infoplist?category=823861

728x90