CLI 4.201.0-canary.13 is available. This canary ships a new release channel model, wider module cache coverage, and several SwiftPM and sharding fixes.
Release channels
- Tuist CLI releases are now split into three channels: canary (per-commit), release candidate (soaked), and stable (promoted).
tuist@latestcontinues to resolve to stable, and you can opt into canary or RC versions when you want early access.
Module cache
- Static and dynamic library products can now be cached as binary XCFrameworks, including their Swift module directories and public headers, so mixed framework/library graphs reuse cache binaries across local and CI builds.
SwiftPM integration
- Packages using SwiftPM’s newer warning-control APIs, such as
treatAllWarningsandtreatWarning, now load successfully. - SwiftPM static library artifact bundles are now supported.
- Finder-zipped binary artifacts no longer leave
__MACOSXshadow bundles behind, which fixes generation errors like those seen with Plaid LinkKit. tuist installnow streams SwiftPM resolve output when progress reporting is enabled.- Dependency restores use SwiftPM’s artifact scratch path.
Graph generation
- Very large dependency graphs no longer crash during generation due to stack overflow. Recursive graph traversals are now iterative.
Testing
- Suite-level test sharding now selects Swift Testing suites, so shards no longer silently pass while running zero tests.
- Suite shard destination resolution now respects the selected test plan, fixing multi-plan schemes that previously fell back to platform-only simulator destinations.
Linting
tuist inspect dependenciesnow reports implicit imports of modules from SPM XCFramework binary targets.
Bazel remote cache
- Long Bazel builds against the Tuist remote cache no longer hit mid-build
UNAUTHENTICATEDbursts. The credential helper refreshes access tokens within a 60-second safety margin.
Cache warming
- Cache warming no longer parses Xcode activity logs for unused per-target build-time metadata, removing a possible failure point.