[Tuist] TCA 프레임워크 적용하기
2024. 11. 7. 17:33ㆍ🍏/Others
Tuist에서 TCA를 적용하기 위해서 작성했습니다.
이전에 만들어두기만 Tuist로 만들어 두기만 하고 방치되었던 repo를 하나 꺼내왔습니다.
tuist@4.15때 만들어진 레포입니다. 아래와 같이 적용시키고, tuist install을 실행하자
// Tuist/Package.swift
// swift-tools-version: 5.9
import PackageDescription
#if TUIST
import ProjectDescription
let packageSettings = PackageSettings(
productTypes: ["ComposableArchitecture": .framework]
)
#endif
let package = Package(
name: "UsicRoom",
dependencies: [
.package(url: "https://github.com/pointfreeco/swift-composable-architecture", from: "1.15.2"),
]
)
// /Project.swift
dependencies: [
.external(name: "ComposableArchitecture")
]
아래의 오류들이 잔뜩 반겨줍니다. 이유는 swift6 인 것 같습니다.
그래서 Tuist를 최신버전(tuist@4.32.1)으로 올리고 실행하니 정상적으로 됩니다.
warning: 'swift-identified-collections': /Users/chan/Documents/iOS/usic-room/Tuist/.build/checkouts/swift-identified-collections/Package@swift-6.0.swift:5:15: warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
3 | import PackageDescription
4 |
5 | let package = Package(
| |- warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
| `- note: use 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)' instead
6 | name: "swift-identified-collections",
7 | products: [
warning: 'combine-schedulers': /Users/chan/Documents/iOS/usic-room/Tuist/.build/checkouts/combine-schedulers/Package@swift-6.0.swift:5:15: warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
3 | import PackageDescription
4 |
5 | let package = Package(
| |- warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
| `- note: use 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)' instead
6 | name: "combine-schedulers",
7 | platforms: [
warning: 'swift-dependencies': /Users/chan/Documents/iOS/usic-room/Tuist/.build/checkouts/swift-dependencies/Package@swift-6.0.swift:6:15: warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
4 | import PackageDescription
5 |
6 | let package = Package(
| |- warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
| `- note: use 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)' instead
7 | name: "swift-dependencies",
8 | platforms: [
warning: 'swift-concurrency-extras': /Users/chan/Documents/iOS/usic-room/Tuist/.build/checkouts/swift-concurrency-extras/Package@swift-6.0.swift:5:15: warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
3 | import PackageDescription
4 |
5 | let package = Package(
| |- warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
| `- note: use 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)' instead
6 | name: "swift-concurrency-extras",
7 | platforms: [
warning: 'swift-clocks': /Users/chan/Documents/iOS/usic-room/Tuist/.build/checkouts/swift-clocks/Package@swift-6.0.swift:5:15: warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
3 | import PackageDescription
4 |
5 | let package = Package(
| |- warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
| `- note: use 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)' instead
6 | name: "swift-clocks",
7 | // NB: While the `Clock` protocol is iOS 16+, etc., the package should support earlier platforms
tuist generate
오류는 뜨지만 실행은 됩니다. swift6가 tca의 dependencies들의 swift5 문법을 deprecated 시켰기 때문인가 봅니다. 아무래도 swift5 사용자들을 위한 배려일지도 모르겠습니다.
'🍏 > Others' 카테고리의 다른 글
암호화와 보안의 기본 개념, 그리고 iOS 앱 보안을 위한 방안 (2) | 2024.12.27 |
---|---|
수병아... 니가 밉다... (미지의 공간 탈출 c++) (0) | 2024.11.18 |
[Developer] 앱 사라짐 / 멤버십 만료 / 멤버십 갱신 (3) | 2024.11.04 |
[Github] Sponsor (1) | 2024.10.10 |
[iOS] 앱 심사 지침 (0) | 2024.05.03 |