👩🏻‍💻 TIL

Xcode Target, Project

ji-hyun 2022. 12. 29. 17:45

workspace

 

 

 

TARGETS 는 Xcode에서 Build를 실행하여 생성되는 최종 제품(?)(end product)입니다. 

 

 

project 란

project 는 모든 파일, 리소스, 하나 이상의 소프트웨어를 빌드하는데 필요한 정보의 저장소입니다.

그리고 연관된 Target 의 집합소입니다. (지금 하나의 Target 만 있는데, 프로젝트를 생성할 때 UI Test, Unit Test를 포함했으면 이 또한 Target 이 될 수 있고 또한 빌드를 할 때 각자가 빌드하는 Target 이 설정이 되어 있었을 것입니다.)

 

즉, 프로젝트는 target 을 하나 이상 포함합니다. 

 

또한, 프로젝트는 모든 target 에 대한 기본 build setting 을 정의합니다.

 

 

정리
프로젝트는 연관된 Target 의 집합소다.
프로젝트는 모든 Target 에 대한 기본 빌드 세팅을 정의한다.

 

 

 

 

Targets

 

products 안에 app 이 존재한다

 

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

 

[iOS] Project , Target, Scheme, Code Signing, Provisioning

Xcode 내에서 자주 볼 수 있는 단어들에 대해서 정확히 알아보고 어떤 목적으로 분리되고 사용되고 있는지 알아보자

velog.io