Tuist 0.16.0 allows users to link system libraries and frameworks
Published by Oliver Atkinson on June 21st 2019
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.
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
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"),])
Thanks to @steprescott and @kwridan 🚀
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. Thanks to @Rag0n for this one.
.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" ])
If you have a custom setup and don’t want Tuist to provide any default build settings then you are now able to specify
import ProjectDescriptionlet 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.
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.
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.
We’ve been working really hard to stabalise 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 @kwridan and @marciniwanicki have introduced fixes into this release! 💪🏼
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
master 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
- We have started work on adding support for SwiftPM (https://github.com/tuist/tuist/pull/394).
- Tuist will soon be able to control the generation of the Info.plist for your project/manifest (https://github.com/tuist/tuist/pull/380).
- You will soon be able to visualise your dependencies (https://github.com/tuist/tuist/pull/382).
- Join the discussion about how we could support the new
- We’re talking about multi-platform targets (https://github.com/tuist/tuist/issues/397)
Thanks, see you next time!