Pull to refresh

Comments 8

UFO just landed and posted this here

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

Я уже молчу о том, что вы пытаетесь редактировать проект перед тем, как его сгенерировать (например, 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 на 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 сбил с правильного пути :-)

Sign up to leave a comment.