-
[Tuist 4.x] Tuist External Dependencies 관련iOS Dev 2024. 3. 14. 22:39반응형
공식 홈페이지에서는 Package.swift에 external dependency를 추가해서 관리할 수 있다고 나와있다.
하지만 그대로 따라하면 안된다..
우선 https://sunrinnote.tistory.com/187 여기를 모두 진행했다는 가정 하에
mise exec -- tuist init --platform ios
위 명령어로 프로젝트를 새로 시작한다고 가정한다.
1. Tuist 폴더 생성, Package.swift 파일 생성
원래는 init할 때 자동으로 Tuist 폴더가 생기고, ProjectDescriptionHelper 폴더가 생겼던 걸로 기억하는데, 바뀐 버전에서는 생기지 않는다.
우선 Tuist 폴더를 만들어주고, 그 안에 Package.swift 파일을 만들어준다.
파일의 내용은 예시에 나와있는 그대로 하면 안되고, import ProjectDescriptionHelper 라인을 지워주어야 한다. (파일 내용 수정은 mise exec -- tuist edit 으로 수정해도 되고, 그냥 파일 내용을 넣어줘도 된다.)
// swift-tools-version: 5.9 import PackageDescription #if TUIST import ProjectDescription let packageSettings = PackageSettings( productTypes: [ "Alamofire": .framework, // default is .staticFramework ] ) #endif let package = Package( name: "PackageName", dependencies: [ .package(url: "https://github.com/Alamofire/Alamofire", from: "5.0.0"), ] )
2. Project.swift 파일 수정
테스트용으로 dependencies에 .external로 Alamofire를 넣어준다.
import ProjectDescription let project = Project( name: "TuistTest1", targets: [ .target( name: "TuistTest1", destinations: .iOS, product: .app, bundleId: "io.tuist.TuistTest1", infoPlist: .extendingDefault( with: [ "UILaunchStoryboardName": "LaunchScreen.storyboard", ] ), sources: ["TuistTest1/Sources/**"], resources: ["TuistTest1/Resources/**"], dependencies: [ .external(name: "Alamofire", condition: .none) ] ), .target( name: "TuistTest1Tests", destinations: .iOS, product: .unitTests, bundleId: "io.tuist.TuistTest1Tests", infoPlist: .default, sources: ["TuistTest1/Tests/**"], resources: [], dependencies: [.target(name: "TuistTest1")] ), ] )
3. install & generate
edit으로 열린 창을 모두 저장 & 닫고 다음 두 명령어를 실행한다.
mise exec -- tuist install mise exec -- tuist generate
install하면 의존성이 설치될 것이고, generate하면, 프로젝트 파일들이 만들어지면서 자동으로 .xcworkspace 파일을 실행한다.
아무 파일에서 import Alamofire를 해보면 잘 들어오고, 코드 자동완성 및 실행도 잘 되는 것을 확인할 수 있다.
반응형'iOS Dev' 카테고리의 다른 글
[XCode] cannot be opened because it is in a future Xcode project file format (3) 2024.08.11 [Tuist 4.x] Tuist install이 먹히지 않을 때. (0) 2024.03.13 Apple Developer Academy @ POSTECH 3기 합격 후기 (1) 2023.07.20 마이크로피처 아키텍처란? (µFeatures Architecture) (1) 2023.07.15 [Tuist] Tuist를 활용하여 SwiftUI 클린 아키텍쳐를 적용한 모듈로 나눈 후 Github에 업로드 하기 2탄! (0) 2023.05.07