Log in
releases

Tuist 0.16.0 allows users to link system libraries and frameworks

From the just released 0.16.0 version of Tuist, users will be able to define dependencies with system libraries and frameworks from their targets. Moreover, we added support for customizing the list of input and output files in their target action, and generation of targets with no build settings at all. This version also ships with minor improvements and bug fixes that had been reported by users.

Hi, Ollie here πŸ‘‹πŸΌ! Happy Friday!

I'm happy to announce the release of Tuist 0.16.0; I'm going to talk through the changes we have made this release and some of the upcoming work we have planned to support some of the newer features announced at this year's WWDC.

Adding support for linking system libraries and frameworks πŸ›

Liking against system libraries and frameworks explicitly is sometimes necessary. This is a common use-case when using 3rd-Party frameworks such as Firebase.

We've added support for a new dependency type sdk.

Target( name: "App", platform: .iOS, product: .app, bundleId: "io.tuist.App", infoPlist: "Info.plist", sources: [ "Sources/**" ], dependencies: [ .sdk(name: "CloudKit.framework", status: .required), .sdk(name: "StoreKit.framework", status: .optional), .sdk(name: "libc++.tbd"), ] )

Add input & output paths for target action 🎯

If you use tools which need the ability to configure a pre-build or post-build script with input and output files, we now have added support for both.

.pre( path: "my_custom_script.sh", name: "My Custom Script Phase", inputFileListPaths: [ "Data/Cars.raw.json", "Data/Drivers.raw.json" ], outputFileListPaths: [ "Data/Cars.swift", "Data/Drivers.swift" ] )

Generate Tuist projects with no build settings 🧬

If you have a custom setup and don't want Tuist to provide any default build settings then you are now able to specify .none for settings on Project or Target.

import ProjectDescription let project = Project( name: "MyFramework", settings: Settings( debug: .init(xcconfig: "Configuration/Debug.xcconfig"), release: .init(xcconfig: "Configuration/Release.xcconfig"), defaultSettings: .none ), targets: [ Target( name: "MyFramework", platform: .iOS, product: .framework, bundleId: "io.tuist.MyFramework", infoPlist: "Sources/Info.plist", sources: [ "Sources/**" ], dependencies: [ .framework(path: "../Framework2/prebuilt/Framework2.framework"), ] ), ] )

This will ensure tuist does not generate a project with any build settings. Be warned if you do this you will need to ensure you provide some build settings otherwise it might not build inside Xcode.

Bug Fixes 🐞

We've been really busy squishing bugs and improving the overall stability and experience when using Tuist. We think fixing bugs you find are very important to us and the future of Tuist - so if you find any bugs please raise an issue.

Code sign frameworks on when embedding ✍🏼

Frameworks were not correctly being codesigned when embedded. This caused a bug when trying to build to device "App installation failed. No code signature found". I was able to figure out where the problem was and include it in this release. Thanks to @Rag0n for rasising the issue.

Stability for generated projects πŸ—

We've been working really hard to stabilize the generated Xcode projects which is really good news if you check them in as you will not see changes you didn't intend to make. It also meant that Xcode could not live-reload the project correctly.

Both Kas and Marcing have introduced fixes into this release! πŸ’ͺ🏼

Installing custom tuist builds from source πŸ‘·πŸΌβ€β™‚οΈ

tuist local was failing to install due to a small bug in the installer still referencing an old compiler flag, luckily I was able to track down the issue and fix it. So if you like living on the edge and using the main branch then it's all back up and working πŸ‘πŸΌ

And much much more, checkout the changelog for the full list of additions, fixes and improvements

Next up πŸ•΅πŸΌβ€β™‚οΈ

Thanks, see you next time!

You might also like

From a URL click to a running app preview: Introducing the Tuist macOS app
We've released a Tuist macOS app as the next step in making sharing your apps a joyful experience.
Define your watchOS apps and extensions easily with Tuist 0.19.0
Until today, defining watchOS apps and extensions in Tuist was not possible. The good news is that from Tuist 0.19.0 that's no longer true because it extends its beautifully simplified abstractions to watchOS. On top of that, we also shipped support for enabling test coverage in the schemes, and defining the deployment targets in targets. We also took the opportunity to iron out some bugs that had been reported by users.
Tuist 0.12.0 supports defining multiple sources and resources
Following users's feedback, we have released a new version of Tuist, 0.12.0 that supports defining multiple sources and resources. Moreover, we added a new product type for those of you that would like to opt for static linking, and added generation of schemes with all the targets that are part of the project. This version also drops support for defining the manifests as a JSON file because Swift will pave our way to a better maintainability and reusability.

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.