XcodeGen
![[iOS] Tuist - 4. Project 생성](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdfwUlE%2FbtrYT8ZNmQS%2FAAAAAAAAAAAAAAAAAAAAAOs2s_Ux4-cLjYQTPgVqvyEjih1cAeF4e0O15Ge_G8FG%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DWSadBfcQPMnJzFisWr1qbz8sYG0%253D)
[iOS] Tuist - 4. Project 생성
드디어 프로젝트를 생성할 단계까지 왔습니다. 오늘에야말로 Project.swift 수정할 예정입니다. 그전에! 저희가 목표했던 프로젝트의 구조를 다시 한 번 생각해봅시다. 프로젝트 안에 타겟은 다음과 같이 생성되어야합니다. Project ├── AppName ├── AppName_Test ├── Content (Push 관련 Extension) └── Service (Push 관련 Extension) 터미널에서 다음 명령어로 Tuist 프로젝트를 오픈합시다. $ tuist edit 0. Project 생성자 Project의 초기화 함수는 다음과 같습니다. Project( name: String, organizationName: String?, options: Project.Options, packages..
![[iOS] Tuist - 3. Target 생성](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FDZcKT%2FbtrXVsFje2d%2FAAAAAAAAAAAAAAAAAAAAAHgUmJCC1xMMWg0bzv6IT5NVMBGkZQrPWPl5YnJ_p3zj%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DFWk%252BNT%252BWS5FPNCmwib7QHvmIivI%253D)
[iOS] Tuist - 3. Target 생성
드디어! 남은 건 Tuist Code 작성뿐이다!! 이지만 Code가 사실 반이상이라는 것! 오늘은 Target을 생성하는 코드부터 먼저 정의해보도록 하겠습니다. 어차피 Swift 코드니까 각자가 편한대로 코드를 작성할 수 있잖아요? Target Enum 그러니 Target을 나눌 Enum부터 정의해줍시다. 정의는 그냥 Project+Templates 파일에 했습니다. 별로 파일 만들어도 상관없는것 같아요. public enum TargetType: String { case dev = "" case test = "Test" case content = "Content" case service = "Service" public var bundleID: String { "com.Rey.AppName" } p..
[iOS] Tuist - 2. 프로젝트 파일 정리
지난편에서 Tuist를 써봤다. 이제 Tuist에 사용될 파일을 가져와보자. 먼저 App Setting File을 준비하자 세가지 종류의 파일을 준비했다. - xcconfig - entitlements - plist xcconfig는 지난편에 가져왔고, entitlements와 plist도 특별한 것 없이 그냥 기존 프로젝트에 있는 파일을 가져오거나 복사해와도 된다. Project.swift가 있는 경로에 App이라는 폴더를 만들었다. 그 안에 세 종류의 파일을 나누기 위해 폴더를 만들고 각 종류에 맞는 파일을 넣었다. App ├── Configuration │ ├── Content-Debug.xcconfig │ ├── Content-Release.xcconfig │ ├── Content-Shared.x..
![[iOS] Tuist - 1. XcodeGen에서 Tuist로](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fm4BZ6%2FbtrXRVazIOO%2FAAAAAAAAAAAAAAAAAAAAAFsmbZL4rJmhkcfT4XRtWWSBAgxrqo6gc_qFdhoejKCo%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DIcQcijhMQ1qbgd1N8LisGtHz%252Fx4%253D)
[iOS] Tuist - 1. XcodeGen에서 Tuist로
기존 프로젝트는 XcodeGen으로 관리되고 있었다. 이전에 XcodeGen을 사용했던 이유는 2~3개월의 짧은 협업 기간이 있었지만, 그 사이에 pbxproj에서 엄청난 Conflict를 겪었기에 도입을 했다. 실제로 도입이 된 시기엔 나 혼자였다. 대부분은 프로젝트의 모듈화를 위해 Tuist를 사용하지만, 나의 경우는 모듈화보단 릴리즈와 테스트(디버그) 빌드를 쉽게 나누고 싶었다. 물론 추후에 생길 모듈화도 염두한 작업이다. 0. 요구사항 - 하나의 소스를 공유하는 두개의 타겟이 필요함 (Release, Debug) - Debug 빌드는 Notification 기능이 필요하지 않지만, 독립된 BundleID를 가지고 TestFilght에 업로드가 가능해야함 1. 준비물 xcconfig 파일 Xcode..