728x90
Target
Target이란 Xcode에서 build해서 만들어 내는 하나의 product를 의미하고 동시에 해당 product를 빌드할 때 필요한 instructions를 포함한다. (Target = product + ⍺)
하나의 Xcode Project는 여러 개의 target을 가질 수 있다.
- target의 product는 Application, Unit test bundle, framework 등이 될 수 있다.
- 여러 개의 target중 하나만 활성화 시킬 수 있는데 이것은 Xcode scheme에서 설정할 수 있다.
각 target은 project의 Build Settings를 상속 받지만, 원할 경우 각 target마다의 Build Settings를 재정의(Override)할 수 있다.
implicit dependency(암시적 의존성)
- 같은 workspace에 여러 target들이 있을 때, target A를 build하는데 target B의 결과물이 필요하다고 한다면 A는 B에 의존성을 가진다고 한다.
- 이런 경우 Xcode가 알아서 의존성을 발견하고 빌드 순서를 조절하는데 이것을 implicit dependency라고 한다.
explicit dependency(명시적 의존성)
- 위의 암시적 의존성의 예시의 경우엔, Xcode에서 B -> A 순으로 빌드를 하려고 할 것이다.
- 하지만 만약 B의 결과를 A에서 사용하지 않는다면 명시적 의존성을 따로 지정해줄 수 있다.
Scheme
Xcode의 Scheme은 build할 target, build시 사용할 configuration, 실행할 test의 묶음을 모아놓은 것을 의미한다.
(Scheme = target + configuration + tests collection)
여러 개의 Scheme을 동시에 가질 수 있지만 한 번에 하나의 active scheme을 가질 수 있다.
(Build, Run, Test, Profile, Archive할 때 하나의 Scheme만을 선택할 수 있다.)
그리고 Scheme을 project에 포함시킬 건지, workspace에 포함시킬 건지도 결정할 수 있다.
- project에 포함
- 해당 project를 포함하는 모든 workspace에서 사용가능
- workspace에 포함
- 해당 workspace에서만 사용가능
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] Archive시 Derived Data 생성 (0) | 2022.10.11 |
---|---|
[iOS] Xcode에서 Clean Build Folder 실행 시 (0) | 2022.10.11 |
[iOS] Xcode build configuration debug vs release (0) | 2022.10.11 |
[iOS] Push 클릭 후 앱 실행 시 life cycle 콜백 호출 순서 (0) | 2022.10.02 |
[iOS] UI event를 main thread에서 처리해야하는 이유 (0) | 2022.10.02 |
댓글