Log in
releases

Tuist 1.7.1 - Edit all manifests, safer build settings API and SwiftUI projects

Easier manifests editing and safer configurations with Tuist 1.7.1

Tuist’s latest version, 1.7.1, has features developed by new contributors 👋🏻. Before joining me for an overview and other significant changes in this version, bear in mind that version 1.7.0 was published and we detected a critical bug due to a library incorrectly linked to the binary. After the community identified the bug, Pedro quickly fixed the issue and released 1.7.1. If you have issues with 1.7.0, you can read here how to fix it.

Edit All Manifests in One Single Project

If you worked with many Project.swift files across different projects, chances are high that you got tired of changing directories and running tuist edit. Thanks to Julian‘s first contribution to Tuist, this is over. From now on, tuist edit will find recursively all Project.swift files within your current directory and create an Xcode project with all of them.

Syntactic Sugar API for Defining Build Settings

Another addition in this release is related to defining project and targets settings. Before this version, one would define settings in the following way:

let baseSettings: [String: SettingValue] = [ “ENABLE_BITCODE”: “YES”, “SWIFT_COMPILATION_MODE”: “wholemodule”, ]

This is not ideal. Having to repeat the strings manually and finding the possible values is not only tedious, but also might lead to errors, since typos in strings are a common problem. Initially, I found myself using a few functions in my project description helpers to make the settings both type safety and to reduce duplication of the strings. I raised the topic in the Tuist Slack group and adding these functions to ProjectDescription was a welcome idea. This is exactly within the goals of Tuist: to make developers’ life easier and the task of generating projects less error prone. From now on, the code above can be written like this:

let baseSettings = SettingsDictionary() .bitcodeEnabled(true) .swiftCompilationMode(.wholemodule)

Refer to the documentation to see the list of built in functions, and also to learn how you can add your own to your project description helpers. If you find yourself using a function that others can leverage as well, don’t hesitate to open a Pull Request adding them.

Behind the Scenes and SwiftUI

Thanks to the efforts of Marek and Daniel, Tuist now uses Apple’s Swift Argument Parser to parse the received commands instead of SPM’s parser (which will be eventually abandoned in favor of this new one). The refactor done to adopt the new parser required Tuist to have a better separation of concerns, so our code is even better now 💪.

Another contribution by Marek is the support for generating new SwiftUI-based project with the new scaffold command.

If you would like to see all the changes in this version, check them out in the release page.

You might also like

The Evolution of iOS Development and the Role of Tuist
Tuist, born in 2017, addresses challenges in scaling Xcode projects. Despite new tools like the Swift Package Manager, the need for Tuist persists.
1.18.0 Himalaya - Documentation generation, Swift interface for accessing resources, and code linting
Tuist 1.18.0 is packed with interesting automatomation feature that will streamline developers' workflows further. This new version provides commands for auto-generating documentation and linting the Swift code, and integrates the generation of Swift interfaces for resources into the project generation.
Bundling Javascript in Swift projects using ESBuild
SwiftyESBuild: Streamlining Swift Web Bundling and JavaScript Integration for Effortless Development.

Supercharge your app development

Get started

We use cookies

This site uses cookies. By continuing to use our site, you agree to use of cookies.