workspace
TARGETS 는 Xcode에서 Build를 실행하여 생성되는 최종 제품(?)(end product)입니다.
project 란
project 는 모든 파일, 리소스, 하나 이상의 소프트웨어를 빌드하는데 필요한 정보의 저장소입니다.
그리고 연관된 Target 의 집합소입니다. (지금 하나의 Target 만 있는데, 프로젝트를 생성할 때 UI Test, Unit Test를 포함했으면 이 또한 Target 이 될 수 있고 또한 빌드를 할 때 각자가 빌드하는 Target 이 설정이 되어 있었을 것입니다.)
즉, 프로젝트는 target 을 하나 이상 포함합니다.
또한, 프로젝트는 모든 target 에 대한 기본 build setting 을 정의합니다.
정리
프로젝트는 연관된 Target 의 집합소다.
프로젝트는 모든 Target 에 대한 기본 빌드 세팅을 정의한다.
Targets
Target 은 iOS, watchOS, macOS 앱과 같은 빌드할 Product 를 지정하는 것 입니다
간단하게 말하자면 Target 이 뭔지 말하자면, Xcode 에서 build 를 실행하여 생성되는 Product 입니다.
여기서 말하는 Product 는 앱이 될 수도 있고, 프레임워크가 될 수도 있고, Unit Test 번들일 수도 있습니다.
Target 은 하나의 프로덕트만 정의할 수 있으며, 앞서 말했듯 프로젝트는 하나 이상의 Target 을 생성할 수 있습니다
Build Settings
Build Setting 은 Product 빌드 프로세스의 특정 측면을 수행하는 방법에 대한 정보가 들어있는 변수입니다.
예를 들어, build setting 의 정보는 Xcode 가 컴파일러에 전달하는 옵션을 지정할 수 있습니다.
Target > Build Setting, Build Phase 가 거기에 속함
그리고 Target 은 Project build setting 을 상속 받습니다.
Project > Build Settings 를 통해서 볼 수 있는데
그러니까 Target 은 기본적으로 Project Build Setting 을 상속 받으며,
Target level 에서 다른 설정을 지정함으로써 Project Setting 을 Override 할 수도 있습니다.
Code Singing
앱을 빌드하는 과정, 혹은 아카이브 하는 과정 중에 앱 서명을 수행합니다.
서명한 이후에는 위변조가 되지 않았다는 것을 증명하기 위해서 해당 서명이 사용됩니다.
프로비저닝 프로필
프로비저닝 프로필은 여러개의 Certificate 와 App ID , UUID 들을 갖고 있습니다.
이 정보들을 이용해 앱을 설치할 지 검사합니다.
쉽게 말해서 프로비저닝 프로필은 해당 기기가 배포 혹은 개발에 허용이 된 기기인지를 검증하는 것입니다.
Singing Certificate 와 같이 Development 와 Distribution 두 가지 종류가 있습니다.
Target 마다 프로비저닝 프로필을 관리한다는 점에서 Team 마다 관리하는 Singing Ceriticate 와 차이점이 있습니다.
Signing Certificate
Code Signing 을 하기 위해서 필요한 인증서입니다.
팀별로 인증서를 소유하고 있으며, Develope 인증서와 Distribution 인증서 2가지 종류가 있습니다.
Code Signing 과정에 사용됩니다
https://velog.io/@leeyoungwoozz/iOS-Project-Target-Scheme-%EB%93%B1%EB%93%B1
'👩🏻💻 TIL' 카테고리의 다른 글
[iOS] Automatically manage signing (0) | 2023.01.12 |
---|---|
[Java] 추상 클래스와 인터페이스 차이 (2탄) (0) | 2023.01.04 |
[Flutter] 앱 버전관리 규칙 (0) | 2022.12.28 |
안드로이드 인텐트 필터 (0) | 2022.12.05 |
안드로이드 Manifest 파일 (0) | 2022.12.05 |