일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- tuist
- LifeCycle
- GIT
- singleton
- concurrency
- flutter
- designpattern
- builder
- WWDC24
- isolate
- swift
- EventLoop
- philipshue
- factory
- iot
- Xcode
- 문법
- SwiftUI
- WiFi
- Architecture
- dartz
- OpenAI
- state
- dart
- AppleDeveloper
- SampleApp
- network
- uikit
- weatherkit
- Adapter
Archives
- Today
- Total
Jaebi의 Binary는 호남선
Tuist - Plugins 본문
목차
Plugins
- 비대해지는 `ProjectDescriptionHelpers`의 기능을 이전하여 모듈로 사용하는 방식
- `Plugin` 타입
- Project description helper Plugin: `Plugin.swift`와 helper Swift 파일들이 있는 `ProjectDescriptionHelpers` 디렉토리 포함
- Resource accessor templates Plugin: `Plugin.swift`와 resource accessor 템플릿 파일들이 있는 `ResourceSynthesizers` 디렉토리 포함
- template 이름들은 페이지 확인: https://docs.tuist.io/guide/project/plugins#resource-accessor-templates-plugin
- 주의사항
- `Plugin`은 다른 `Plugin`에 의존할 수 없음
- Third-party Swift Packges도 의존할 수 없음
- `Plugin`을 사용하는 `ProjectDescriptionHelpers`를 사용할 수 없음
Plugin 사용
- `Config.swift`에서 `Plugin` 정의
// Config.swift
let config = Config(
plugins: [
.local(path: .relativeToRoot("Plugins/ConfigPlugin")),
.local(path: .relativeToRoot("Plugins/DependencyPlugin")),
.local(path: .relativeToRoot("Plugins/EnvPlugin")),
.local(path: .relativeToRoot("Plugins/UtilityPlugin"))
]
)
- Root에서 `mkdir Plugins`로 `Plugin` 디렉토리 생성, 안에 `Plugin.swift`파일 생성 및 `ProjectDescriptionHelpers` 디렉토리 생성
// Plugin.swift
// 모듈의 의존성, Library의존성 등을 정의할 Plugin
import ProjectDescription
let dependencyPlugin = Plugin(name:"DependencyPlugin")
- 생성된 `Plugin` 구조:
- `import DependencyPlugin`을 통해 해당 `Plugin`사용
Reference
'Tuist' 카테고리의 다른 글
Tuist - Project (0) | 2024.05.28 |
---|---|
Tuist - Workspace (0) | 2024.05.28 |
Tuist - 기본 (0) | 2024.05.06 |