지난편에서 Tuist를 써봤다. 이제 Tuist에 사용될 파일을 가져와보자.
먼저 App Setting File을 준비하자
세가지 종류의 파일을 준비했다.
- xcconfig
- entitlements
- plist
xcconfig는 지난편에 가져왔고, entitlements와 plist도 특별한 것 없이 그냥 기존 프로젝트에 있는 파일을 가져오거나 복사해와도 된다.
Project.swift가 있는 경로에 App이라는 폴더를 만들었다.
그 안에 세 종류의 파일을 나누기 위해 폴더를 만들고 각 종류에 맞는 파일을 넣었다.
App
├── Configuration
│ ├── Content-Debug.xcconfig
│ ├── Content-Release.xcconfig
│ ├── Content-Shared.xcconfig
│ ├── AppName-Debug.xcconfig
│ ├── AppName-Release.xcconfig
│ ├── AppName-Shared.xcconfig
│ ├── AppName-Test-Debug.xcconfig
│ ├── AppName-Test-Release.xcconfig
│ ├── AppName-Test-Shared.xcconfig
│ ├── Service-Debug.xcconfig
│ ├── Service-Release.xcconfig
│ └── Service-Shared.xcconfig
├── Entitlements
│ ├── Content.entitlements
│ ├── ContentDebug.entitlements
│ ├── PerfectDay.entitlements
│ ├── Service.entitlements
│ └── ServiceDebug.entitlements
└── plist
├── Content-info.plist
├── Info.plist
├── Service-info.plist
└── Test-info.plist
참고로 내 경우는 Test Target을 따로 생성하기 위해 xcconfig와 plist를 복사해서 사용했다.
이제 실제 앱 파일들을 가져오자.
앱 파일은 네가지로 분류해보았다.
- Swift 소스 파일
- Assets
- Storyboard
- XIB
사실 C++, Objc-C, Header 등등 더 다양할 수 있지만 현재 사용하지 않는 종류의 파일이었다.
종류를 반드시 저렇게 4가지로 나눌 필요가 없고, 선택의 영역이다.
나의 경우는 프로젝트의 구조가
Assets와 Storyboard를 별로의 폴더로 관리하고, XIB는 View에 해당하는 Swift와 함께 관리했기 때문에 저렇게 분류했다.
만약 Storyboard와 XIB를 함께 놓고 관리한다면 하나로 생각해도 좋다.
이제 Targets 폴더에 Target 생성에 필요한 폴더들을 생성하자.
기존의 폴더는 다 지워도 되고 둬도 되지만 나는 지우고 시작했다. (나중에 git에 같이 들어가버리면...😵💫)
그래서 결과적으로
Targets
├── Content
│ ├── Resources
│ └── Sources
├── AppName
│ ├── Resources
│ └── Sources
└── Service
├── Resources
└── Sources
Test Target은 어차피 기본 Target의 소스를 공유할 것이기 때문에 여기서는 별로 나누지 않았다.
여기서!!
Resources에는 Assets과 Storyboard를
Sources에는 Swift 소스와 XIB를 넣어준다.
이제 이 안에 넣는 폴더 구조대로 프로젝트 구조가 생성된다고 생각하면된다.
Contents 예시
Targets/Content
├── Resources
│ ├── MainInterface.storyboard
│ └── ko.lproj
│ └── MainInterface.strings
└── Sources
└── NotificationViewController.swift
중간에 있었던 시행착오
이후에 저렇게 놓고 tuist generate를 했더니, Sources안에 XIB는 인식을 못하고, Swift코드만 남는 일이 벌어졌다.😅
알고보니 Sourece엔 Source Path를 Resource에는 Resource Path만 적어야한다고 생각했지만,,, 그게 아니었다.
무슨 소린지 잘 모르겠다면 다음편으로!
'iOS > iOS' 카테고리의 다른 글
[iOS] Tuist - 4. Project 생성 (0) | 2023.02.11 |
---|---|
[iOS] Tuist - 3. Target 생성 (0) | 2023.02.03 |
[iOS] Tuist - 1. XcodeGen에서 Tuist로 (0) | 2023.02.02 |
[iOS] Swift Static Framework 만들기(Universal) - 1. 삽질 구간 (0) | 2022.07.16 |
[iOS] Swift Static Library 만들기(Device, Simulator) (0) | 2022.06.30 |