Tuist Tutorial for Xcode | Kodeco

Learn how to use Tuist to create and manage complex Xcode projects and workspaces on-the-fly.


This is a companion discussion topic for the original entry at https://www.kodeco.com/24508362-tuist-tutorial-for-xcode

Please update the tutorial as per tuist 3.x. Lot many code are having compile errors.

Was super excited to find a tutorial on implementing Tuist for an existing project, but unfortunately the code is out of date to what is current for Xcode (as of 14.1), and I receive errors when updating the Project.swift file as well as the same errors when running tuist generate:

The ‘swift’ command exited with error code 1 and message:
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:2:31: error: extra arguments at positions #1, #2, #3 in call
let projectSettings = Settings(
^
ProjectDescription.Settings:9:12: note: ‘init(from:)’ declared here
public init(from decoder: Decoder) throws
^
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:3:3: error: missing argument for parameter ‘from’ in call
debug: Configuration(xcconfig: Path(“config/MovieInfoProject.xcconfig”)),
^
from: <#Decoder#>,
ProjectDescription.Settings:9:12: note: ‘init(from:)’ declared here
public init(from decoder: Decoder) throws
^
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:3:23: error: incorrect argument label in call (have ‘xcconfig:’, expected ‘from:’)
debug: Configuration(xcconfig: Path(“config/MovieInfoProject.xcconfig”)),
^~~~~~~~~
from
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:3:34: error: argument type ‘Path’ does not conform to expected type ‘Decoder’
debug: Configuration(xcconfig: Path(“config/MovieInfoProject.xcconfig”)),
^
as! Decoder
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:4:25: error: incorrect argument label in call (have ‘xcconfig:’, expected ‘from:’)
release: Configuration(xcconfig: Path(“config/MovieInfoProject.xcconfig”)),
^~~~~~~~~
from
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:4:36: error: argument type ‘Path’ does not conform to expected type ‘Decoder’
release: Configuration(xcconfig: Path(“config/MovieInfoProject.xcconfig”)),
^
as! Decoder
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:5:21: error: cannot infer contextual base in reference to member ‘none’
defaultSettings: .none
~^~~~
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:8:30: error: extra arguments at positions #1, #2, #3 in call
let targetSettings = Settings(
^
ProjectDescription.Settings:9:12: note: ‘init(from:)’ declared here
public init(from decoder: Decoder) throws
^
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:9:3: error: missing argument for parameter ‘from’ in call
debug: Configuration(xcconfig: Path(“config/MovieInfoTarget.xcconfig”)),
^
from: <#Decoder#>,
ProjectDescription.Settings:9:12: note: ‘init(from:)’ declared here
public init(from decoder: Decoder) throws
^
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:9:23: error: incorrect argument label in call (have ‘xcconfig:’, expected ‘from:’)
debug: Configuration(xcconfig: Path(“config/MovieInfoTarget.xcconfig”)),
^~~~~~~~~
from
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:9:34: error: argument type ‘Path’ does not conform to expected type ‘Decoder’
debug: Configuration(xcconfig: Path(“config/MovieInfoTarget.xcconfig”)),
^
as! Decoder
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:10:25: error: incorrect argument label in call (have ‘xcconfig:’, expected ‘from:’)
release: Configuration(xcconfig: Path(“config/MovieInfoTarget.xcconfig”)),
^~~~~~~~~
from
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:10:36: error: argument type ‘Path’ does not conform to expected type ‘Decoder’
release: Configuration(xcconfig: Path(“config/MovieInfoTarget.xcconfig”)),
^
as! Decoder
/Users/user/repos/3rdParty/Tuist_Materials/starter/Project.swift:11:21: error: cannot infer contextual base in reference to member ‘none’
defaultSettings: .none
~^~~~