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: 스토리보드 이름
- Item 0
- Application Session Role : 2가지 역할 (Application / External Display)
- 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
- iOS Deployment Target: 해당 iOS 타겟을 설정해줄 때는 iOS 점유율을 참고하여 설정
- https://developer.apple.com/kr/support/app-store/
- 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://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
'iOS' 카테고리의 다른 글
[iOS_study] Dicee-iOS (0) | 2021.06.25 |
---|---|
[iOS_study] iOS 유용한 정보, 사이트 정리(feat 유데미) (0) | 2021.06.25 |
[iOS_study] 유데미 한글 자막 설정(맥북, Chrome 환경) (0) | 2021.06.25 |
[RC_week1-3] 프로덕트 애플리케이션 프론트 구성해보기 (0) | 2021.06.20 |
[RC_week1-2] 스토리보드 컴포넌트 및 AutoLayout (0) | 2021.06.20 |