Tuist CLI 4.49.0 released

We just released a new version of the Tuist CLI, 4.49.0, with the following changes:

Select an existing organization when creating new projects

Not long ago, we improved the CLI’s getting started workflow. As part of that, we added a prompt to connect the project with a server account. However, the only available options were creating a project under the developer’s personal account or creating a new organization. Thanks to @vkondrashkov’s brilliant work, the CLI now includes a list of organizations that the authenticated user belongs to.

Embed dynamic frameworks that are transitive through bundles

One of Tuist’s most beloved features is how it configures linking and copying of products for you. However, some scenarios weren’t well supported—one of them being the embedding and signing of transitive dynamic frameworks that are dependencies of bundles. This is a common scenario when developing plugins for the Mail application. Thanks to Ian Hlavats’s excellent work in this PR, Tuist now handles this scenario gracefully.

XCFramework signature validation

Did you know that Xcode can validate XCFrameworks using signatures? This feature is essential for organizations that want to ensure they’re linking against a specific binary. Tuist previously didn’t support this, until Tamar Milchtaich Lavi raised the issue and led the effort to a great solution. Thanks to her work, you can now declare an XCFramework dependency with an expected signature:

let target = Target(
  name: "MyTarget",
  dependencies: [
    .xcframework(path: "./ThirdParty.xcframework", expectedSignature: .selfSigned(fingerprint: "..."))
  ]
)

Automatically enable testing search paths for IssueReportingTestSupport

When integrating Swift packages through the XcodeProj-based integration, Tuist needs to know which packages include testing utilities, as these require the ENABLE_TESTING_SEARCH_PATHS=YES build setting. While SwiftPM uses static analysis to detect import Testing or import XCTest, Tuist takes a different approach with a hardcoded list of known packages. Sergio Fernández noticed that IssueReportingTestSupport was missing from this list, so he went ahead and added it.

How to update

If you’re using Mise, update it in your mise.toml, or run mise install [email protected] to install it.
If you’re using Homebrew, run brew upgrade tuist.

Give it a shot and let us know if you encounter any issues :slightly_smiling_face:

1 Like

I forgot to mention that there are also two new commands to get the hashes that are used by Tuist to look up binaries and determine if tests can be skipped.

OVERVIEW: Utilities to debug the hashing logic used by features like binary caching or selective testing.

USAGE: tuist hash <subcommand>

OPTIONS:
  -h, --help              Show help information.

SUBCOMMANDS:
  cache                   Returns the hashes that will be used to persist binaries of the graph in its current state to the cache.
  selective-testing       Returns the hashes that will be used to persist targets' test results to select tests in future test runs.

  See 'tuist help hash <subcommand>' for detailed help.
1 Like