Hive Hive
Sign in

CLI 4.201.0-canary.18

Metadata
Source
GitHub
Version
4.201.0-canary.18
Published
Jun 19, 2026 · 15:22 UTC
Repository
tuist/tuist
Update

This canary adds library product caching and stabilizes large graph generation, test runs, and SwiftPM integration.

Module cache

  • Static and dynamic library products can now be cached as binary XCFrameworks, alongside frameworks.
  • External resource bundles are no longer embedded into internal frameworks when restoring from cache, matching source generation behavior.
  • Generated module maps keep their modification times when their contents are unchanged, so incremental tuist test --build-only builds no longer recompile Swift sources unnecessarily.
  • Cache warming no longer parses Xcode activity logs for unused per-target build duration metadata.

Testing

  • tuist test now falls back to per-project test schemes when the autogenerated workspace scheme mixes app-hosted and host-less test bundles, preventing xctest bootstrap crashes.
  • Build runs uploaded by tuist test now display the scheme test configuration instead of “Unknown”.
  • Suite sharding now resolves the correct destination from test plans and actually selects Swift Testing suites by passing -only-testing identifiers to xcodebuild.

Generated projects and dependencies

  • .proto files are treated as sources, so Xcode build tool plugins like gRPC Swift receive them as target inputs.
  • tuist inspect dependencies now recognizes implicit imports from SwiftPM XCFramework binary targets.
  • Generated projects support SwiftPM warning-control settings (treatAllWarnings, treatWarning, enableWarning).
  • DocC builds work better for packages whose public headers import another module from the same package.
  • Framework search path response files are quoted, so targets with spaces in their names build correctly.
  • Recursive graph processing has been replaced with iterative traversals, preventing stack-overflow crashes on large dependency graphs.

CLI

  • Tuist CLI releases are now published through canary, release-candidate, and stable channels.
  • --verbose now appears in tuist inspect --help.
  • The Bazel credential helper proactively refreshes access tokens within 60 seconds of expiry to avoid mid-build UNAUTHENTICATED errors.

SwiftPM integration

  • Restored SwiftPM artifacts now use SwiftPM’s artifact scratch path.
  • Updated SwifterPM to skip __MACOSX shadow bundles and stream swift package resolve output.