본문 바로가기
PROGRAMMING CODE/SWIFT

[Swift] tuist 외부 패키지, 의존성 주입(Carthage)

by daye_ 2023. 12. 26.

 
 tuist var 3.35
 

 


 지난번에는 XCode SPM을 사용해서 의존성을 주입하였는데,

이번에는 Carthage를 사용해보겠다!

 

사실 이 방법은 잘 사용하지 않는데

Tuist SPM방식을 써보다가 경고가 너무 떠서, 방법과 결과가 비슷한 Carthage로 먼저 테스트해보기로 했다!

 

 

지난번에는 이렇게 Helpers 폴더 하위에 Dependencies(extension)파일을 넣었지만,

이번에는 Tuist파일의 하위(Config와 동일한 디렉토리)에 Dependendies를 만들어야 한다.
 

 
 

import ProjectDescription

let dependencies = Dependencies(
    carthage: [
        .github(path: "Alamofire/Alamofire", requirement: .exact("5.0.4")),
    ],
    swiftPackageManager: [
        .remote(url: "https://github.com/Alamofire/Alamofire", requirement: .upToNextMajor(from: "5.0.0")),
    ],
    platforms: [.iOS]
)

 

 
swiftPackageMagager부분 전체를 주석처리 해주어도 상관없다.

하지만 같이 선언하면 중복 오류가 있다고 한다!

 

let project = Project(
    name: "TuistTest2",
    organizationName: nil,
    targets: [
        Target(
            name: "TuistTest2",
            platform: .iOS,
            product: .app,
            bundleId: "io.tuist.TuistTest2",
            deploymentTarget: .iOS(targetVersion: "13.0", devices: .iphone),
            infoPlist: .default,
            sources: ["Targets/TuistTest2/Sources/**"],
            dependencies: [
                .external(name: "Alamofire")
            ]
        ),
    ]
)

그리고 프로젝트 파일에서 .external로 불러오고
 
ctrl+c해서 저장 !
 
 

`Tuist/Dependencies.swift` file is defined but `Tuist/Dependencies/graph.json` cannot be found. Run `tuist fetch` first

 
fetch-generate하니까 자꾸 graph.json파일을 못찾는댔다.
 
터미널에 tuist graph 하면 보여준다는데 안떠서 또 한참 헤맴
 
 

brew install carthage

 
원래는 Dependencie.swift 파일이 Dependencies파일을 생성하면서 그 안에 graph.json파일 등등이 들어가있는데
안돼서 보니까 carthage가 설치 되어있지 않았다고 한다ㅎ

 

carthage 방법은 따로 설치를 해 주어야 하나보다.
 
 

드디어 설치해주니 파란 가방모양으로 잘 나온다!
 
 근데 요 방법은 지원되지 않는 라이브러리가 꽤 있는것같음!