Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Human interface guide
- ios
- Clean Code
- HIG
- rxswift
- scrollview
- 애니메이션
- ribs
- swift documentation
- UICollectionView
- Refactoring
- uiscrollview
- SWIFT
- swiftUI
- map
- 스위프트
- MVVM
- tableView
- uitableview
- 리펙토링
- UITextView
- clean architecture
- RxCocoa
- collectionview
- 클린 코드
- combine
- Protocol
- 리팩토링
- Observable
- Xcode
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 프로젝트 개념 (xcodeproj / project.pbxproj / xcuserdata / .xcworkspace / contents.xcworkspacedata / Target / Scheme) 본문
iOS 기본 (swift)
[iOS - swift] 프로젝트 개념 (xcodeproj / project.pbxproj / xcuserdata / .xcworkspace / contents.xcworkspacedata / Target / Scheme)
jake-kim 2021. 4. 7. 01:01{프로젝트이름}.xcodeproj
- 파일이 아닌 디렉토리임을 주의: 터미널을 통해 $ cd {프로젝트이름}.xcodeproj 하여 들어가게 되면,
project.pbxproj라는 파일, project.xcworkspace파일, xcuserdata라는 디렉토리가 존재

project.pbxproj
- 프로젝트 내부에서 파일들을 파일 유형에 따라 reference를 저장
- project.pbxproj는 특히 git에서 merge conflict가 일어나는 주요 파일 중 하나
- A파일, B파일 수정 후 merge -> B파일의 reference, A파일의 reference가 모두 바뀐경우 conflict 발생
- conflict가 제대로 해결되지 못하면 project.pbxproj 파일이 깨져서 프로젝트가 열리지 않는 현상 존재

project.xcworkspace
- contents.xcworkspacedata: project파일의 reference가 정의되어 있는 파일
- xcshareddata: 공통적으로 적용되어 있는 정의이며 .plist형태로 정의 (ex: 32bit에서 warning이 발생)

xcuserdata
- 프로젝트 자체에 크게 영향을 주지 않는 개인 설정을 담은 디렉토리: breakpoint, 스냅샷 등


.xcworkspace
- 여러개의 project를 담아 관리할 수 있도록 해주는 개념
- CocoaPods 사용 시 pod install을 할 경우 .xcworkspace 생성의 의미
: CocoaPods 본래의 프로젝트와는 별도로 Project를 만들어서 라이브러리 의존성을 관리할 수 있도록 해주는 것 - .xcworkspace는 파일이 아닌 디렉토리: 안에 contents.xcworkspacedata 존재

- contents.xcworkspacedata: project들의 reference가 저장되어 있는 파일

Target
- 프로젝트를 통해 생성되는 Application을 지칭 ( = 하나의 모듈을 의미, 어떻게 프로젝트를 빌드할 것인지를 담당)
- 하나의 project에 여러개의 배포판 & 성격으로 사용할 수 있도록, 여러개의 target설정 가능 (특정 라이브러리가 포함된 target, iPhone용 target, iPad용 target)
- build setting
- 프로젝트에 포함될 객체, 리소스, 스크립트 설정

Scheme
- Target이 프로젝트를 Build, Profile, Test등을 할 때 일어날 환경을 설정할 수 있는 개념

* 참고
developer.apple.com/library/archive/featuredarticles/XcodeConcepts/Concept-Projects.html