Как стать автором
Обновить

Комментарии 8

Созданный файл Project.swift находится в группе Manifest, добавим в него описание проекта:

и получим в консоли:
The target App has the following invalid source files globs:
— The directory "/Users/admin/Documents/xcode_projects/tuist_test/App" defined in the glob pattern "/Users/admin/Documents/xcode_projects/tuist_test/App/**" does not exist.

Простите вы хоть запускали проект прежде, чем писать статью?

Я уже молчу о том, что вы пытаетесь редактировать проект перед тем, как его сгенерировать (например, tuist edit НЕ работает с голым Project.swift файлом, нужно сначала выполнить tuist init).

Судя по указанным путям, вы пытаетесь выполнить команды не в корневой папке демо-проекта.

Я уже молчу о том, что вы пытаетесь редактировать проект перед тем, как его сгенерировать (например, tuist edit НЕ работает с голым Project.swift файлом, нужно сначала выполнить tuist init)

Актуальные версии Tuist прекрасно работают с голым Project.swift, какую версию вы используете?

tuist init - это команда создания нового проекта, в статье мы мигрируем существующий и эта команда выдаст ошибку:

Can't initialize a project in the non-empty directory at path /Users/almaz/Development/TuistDemo.

Если мигрирует существующий проект, может пригодится xcdiff. Он позволяет сравнить имеющийся проект со сгенерированным, чтобы убедиться, что при миграции ничего не потерялось.

Что-то статья уже устарела, ибо есть SwiftPM, который встроен в Xcode.

Не совсем, Tuist - это как раз прокаченный Swift PM с тем же синтаксисом, но более богатой функциональностью для модуляризации.

Столкнулись ли вы с cocoapods в модулях?

Мы переехали с CocoaPods на Carthage вместе с переездом на Tuist.

Всех тонкостей, увы, не знаю, но для примера интеграции с CocoaPods закинул отдельную ветку в репу демо-проекта: https://github.com/almazrafi/TuistDemo/tree/cocoapods

Из того, что меняется относительно SPM-варианта:

  • Добавлен Podfile: в нем, кроме подов и таргетов, необходимо указать пути к проектам и воркспейсу.

  • В файлы xcconfig добавлены импорты файлов конфигурации CocoaPods. В реальном проекте скорее всего можно было иначе разрулить.

  • В зависимости таргета в манифестах Tuist добавлен путь к папке с Podfile (корневая папка): dependencies: [.cocoapods(path: .relativeToRoot("."))].

В остальном все так же, при чем команда tuist generate сама вызывает pod install.

Спасибо, пример из демо-проекта мне помог: я для сабмодулей делал таргеты, а не проекты, дефолтный пример Tuist сбил с правильного пути :-)

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.