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 | 31 |
Tags
- tableView
- Observable
- 리펙토링
- uitableview
- Xcode
- ribs
- 스위프트
- swiftUI
- 리팩토링
- MVVM
- rxswift
- RxCocoa
- clean architecture
- uiscrollview
- HIG
- 리펙터링
- Protocol
- collectionview
- UITextView
- Refactoring
- swift documentation
- 애니메이션
- UICollectionView
- combine
- ios
- Human interface guide
- 클린 코드
- Clean Code
- SWIFT
- map
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
'iOS 기본 (swift)' 카테고리의 다른 글
Comments