XcodeGen

    [iOS] Tuist - 4. Project 생성

    [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 생성

    [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로

    [iOS] Tuist - 1. XcodeGen에서 Tuist로

    기존 프로젝트는 XcodeGen으로 관리되고 있었다. 이전에 XcodeGen을 사용했던 이유는 2~3개월의 짧은 협업 기간이 있었지만, 그 사이에 pbxproj에서 엄청난 Conflict를 겪었기에 도입을 했다. 실제로 도입이 된 시기엔 나 혼자였다. 대부분은 프로젝트의 모듈화를 위해 Tuist를 사용하지만, 나의 경우는 모듈화보단 릴리즈와 테스트(디버그) 빌드를 쉽게 나누고 싶었다. 물론 추후에 생길 모듈화도 염두한 작업이다. 0. 요구사항 - 하나의 소스를 공유하는 두개의 타겟이 필요함 (Release, Debug) - Debug 빌드는 Notification 기능이 필요하지 않지만, 독립된 BundleID를 가지고 TestFilght에 업로드가 가능해야함 1. 준비물 xcconfig 파일 Xcode..