Создание нового проекта
Самый простой способ начать новый проект с Tuist — использовать команду tuist init. Эта команда запускает интерактивный CLI, который поможет вам настроить проект. Когда будет предложено, обязательно выберите опцию создания «сгенерированного проекта».
Затем вы можете редактировать проект, запустив tuist edit, и Xcode откроет проект, в котором вы сможете его редактировать. Одним из сгенерированных файлов является Project.swift, содержащий определение вашего проекта. Если вы знакомы со Swift Package Manager, считайте его аналогом Package.swift, но с терминологией проектов Xcode.
import ProjectDescription
let project = Project(
name: "MyApp",
targets: [
.target(
name: "MyApp",
destinations: .iOS,
product: .app,
bundleId: "dev.tuist.MyApp",
infoPlist: .extendingDefault(
with: [
"UILaunchScreen": [
"UIColorName": "",
"UIImageName": "",
],
]
),
sources: ["MyApp/Sources/**"],
resources: ["MyApp/Resources/**"],
dependencies: []
),
.target(
name: "MyAppTests",
destinations: .iOS,
product: .unitTests,
bundleId: "dev.tuist.MyAppTests",
infoPlist: .default,
sources: ["MyApp/Tests/**"],
resources: [],
dependencies: [.target(name: "MyApp")]
),
]
)
Мы намеренно оставляем список доступных шаблонов коротким, чтобы минимизировать затраты на поддержку. Если вы хотите создать проект, который не является приложением, например фреймворк, вы можете использовать tuist init в качестве отправной точки, а затем изменить сгенерированный проект под свои нужды.
Ручное создание проекта#
В качестве альтернативы вы можете создать проект вручную. Мы рекомендуем делать это только если вы уже знакомы с Tuist и его концепциями. Первое, что вам нужно сделать, — создать дополнительные каталоги для структуры проекта:
mkdir MyFramework
cd MyFramework
Затем создайте файл Tuist.swift, который настроит Tuist и используется им для определения корневого каталога проекта, и файл Project.swift, где будет объявлен ваш проект:
import ProjectDescription
let project = Project(
name: "MyFramework",
targets: [
.target(
name: "MyFramework",
destinations: .macOS,
product: .framework,
bundleId: "dev.tuist.MyFramework",
sources: ["MyFramework/Sources/**"],
dependencies: []
)
]
)
import ProjectDescription
let tuist = Tuist()
Tuist использует каталог Tuist/ для определения корня вашего проекта и от него ищет другие файлы манифестов, обходя каталоги. Мы рекомендуем создавать эти файлы в вашем любимом редакторе, а после этого вы можете использовать tuist edit для редактирования проекта в Xcode.