Swiftpack.co - Package - tuist/tuist

What's Tuist ๐Ÿ•บ

Tuist is a command line tool that helps you generate, maintain and interact with Xcode projects.

It's open source and written in Swift.

Install โฌ‡๏ธ

Running script (Recommended)

bash <(curl -Ls https://install.tuist.io)

Bootstrap your first project ๐ŸŒ€

tuist init --platform ios
tuist generate # Generates Xcode project & workspace
tuist build # Builds your project

Check out the project "Getting Started" guide to learn more about Tuist and all its features.

Repository structure

The repository is a monorepo with multiple projects:

Documentation ๐Ÿ“

Do you want to know more about what Tuist can offer you? Or perhaps want to contribute to the project and you need a starting point? You can check out the project documentation.

Supported by MacStadium

MacStadium supports this project by providing Mac mini hardware that we can use for running performance tests.

Contribute ๐Ÿ‘ฉโ€๐Ÿ’ป

If you are interested in contributed to the project, our documentation has a section with resources for contributors. We recommend starting from this page.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

Github

link
Stars: 1146

Used By

Total: 1

Releases

1.26.0 - New World -

1.26.0

Added

  • Extend the tree-shaking logic to include workspace projects and targets #2056 by @pepibumur.

Changed

  • Change launchArguments of Target and RunAction to ordered array so order can be preserved #2052 by @olejnjak.
  • Added Package.swift to some subdirectories to prevent Xcode from including them in the generated Xcode project #2058 by @pepibumur.

Fixed

  • Fixed signing linter for target with bundle identifier derived from build settings #2031 by @leszko11.
  • Fix hashing preaction with path to nil #2074 by @fortmarek
  • Correct the TEST_HOST path for the macOS Platform #2034 by @ferologics

1.25.0 - Charles

Added

  • Add enableCodeCoverage generation option to enable code coverage in automatically generated schemes #2020 by @frijole.)
  • Add support for Command Line Tool targets #1941 by @olejnjak.

1.24.0 - Sol y sombra

Added

Fixed

  • Re-enable tests acceptance tests that were not running on CI #1999 by @pepibumur.
  • Block the process while editing the project and remove the project after the edition finishes #1999 by @pepibumur.
  • Use the simulator udid when building the frameworks for the cache instead of os=latest #2016 by @pepibumur.

1.23.0 - Automaton

Added

  • Allow specifying Development Region via new developmentRegion parameter in Configs GenerationOption. #1062 by @svastven.
  • Require the Config.swift file to be in the Tuist directory #693 by @mollyIV.
  • Mapper for the caching logic to locate the built products directory #1929 by @pepibumur.
  • Extended BuildPhaseGenerator to generate script build phases #1932 by @pepibumur.
  • Extend the TargetContentHasher to account for the Target.scripts attribute #1933 by @pepibumur.
  • Extend the CacheController to generate projects with the build phase to locate the targets' built products directory #1933 by @pepibumur.
  • Add support for appClip #1854 by @lakpa.

Fixed

  • Fixed non-framework/library targets having a header build phase #367 by @eito.
  • Fixed missing profile scheme arguments when specified in manifest #1543 by @lakpa.
  • Fixed cache warming exporting unrelated .frameworks #1939 by @pepibumur.
  • Fixed cache warming building from a clean state for every target #1939 by @pepibumur.

1.25.0 - Charles -

1.25.0 - Charles

Added

  • Add enableCodeCoverage generation option to enable code coverage in automatically generated schemes #2020 by @frijole.)
  • Add support for Command Line Tool targets #1941 by @olejnjak.

1.24.0 - Sol y sombra -

Added

  • Synthesize accessors for stringsdict #1993 by @fortmarek
  • Add support for StencilSwiftKit's additional filters. #1994 by @svastven.
  • Add migration list-targets command to show all targets sorted by number of dependencies #1732 of a given project by @andreacipriani.

Fixed

  • Re-enable tests acceptance tests that were not running on CI #1999 by @pepibumur.
  • Block the process while editing the project and remove the project after the edition finishes #1999 by @pepibumur.
  • Use the simulator udid when building the frameworks for the cache instead of os=latest #2016 by @pepibumur.

1.23.0 - Automaton -

1.23.0

Added

  • Allow specifying Development Region via new developmentRegion parameter in Configs GenerationOption. #1062 by @svastven.
  • Require the Config.swift file to be in the Tuist directory #693 by @mollyIV.
  • Mapper for the caching logic to locate the built products directory #1929 by @pepibumur.
  • Extended BuildPhaseGenerator to generate script build phases #1932 by @pepibumur.
  • Extend the TargetContentHasher to account for the Target.scripts attribute #1933 by @pepibumur.
  • Extend the CacheController to generate projects with the build phase to locate the targets' built products directory #1933 by @pepibumur.
  • Add support for appClip #1854 by @lakpa.

Fixed

  • Fixed non-framework/library targets having a header build phase #367 by @eito.
  • Fixed missing profile scheme arguments when specified in manifest #1543 by @lakpa.
  • Fixed cache warming exporting unrelated .frameworks #1939 by @pepibumur.
  • Fixed cache warming building from a clean state for every target #1939 by @pepibumur.

1.22.0 - Heimat -

Changed

Added

  • Allow build phase scripts to disable dependency analysis #1883 by @bhuemer.

1.21.0 - PBWerk -

Added

Changed

  • Improve error message to have more actionable information #921 by @mollyIV.

Fixed

  • Fix calculation of Settings hash related to Cache commands [#1869](Fix calculation of Settings hash related to Cache commands) by @natanrolnik

1.20.0 - Heidelberg -

Changed

Added

  • Support for caching frameworks instead of xcframeworks #1851

Fixed

  • Skip synthesizing resource accessors when the file/folder is empty #1829 by @fortmarek
  • The redirect after the cloud authentication is not being captured from the CLI #1846 by @pepibumur.

1.19.0 - Milano -

Fixed

Added

  • Add Workspace Mappers #1767 by @kwridan
  • Extended Config's generationOptions with .disableShowEnvironmentVarsInScriptPhases. It does what you'd think. #1782 by @kalkwarf

Changed

  • The tuist edit command adds Setup.swift and Config.swift to the generated project if they exist.

1.18.1 - Manaslu -

Fixed

1.18.0 - Himalaya -

Fixed

Added

  • Possibility to build schemes that are not part of any entry node #1761 by @fortmarek
  • tuist lint code - command to lint the Swift code using Swiftlint #1682 by @laxmorek
  • tuist doc - command to generate documentation for your modules using SwiftDoc #1683 by @facumenzella

Changed

  • Breaking Command for linting a workspace or a project has been renamed from tuist lint to tuist lint project #1682 by @laxmorek
  • Breaking UpCarthage should perform bootstrap instead of update #1744 by @softmaxsg
  • Add excluding argument to recommended/essential DefaultSettings #1746 by @rist.
  • Synthesize resource interface accessors #1635 by @fortmarek
  • Graph command now adds different colors and shapes for different types of targets and dependencies #1763 by @natanrolnik

1.17.0 - Luft -

Changed

  • Breaking tuist focus only works with Project.swift #1739 by @pepibumur.
  • Breaking a target or a list of targets is required for tuist focus #1739 by @pepibumur.
  • Breaking cache is enabled by default in tuist focus #1739 by @pepibumur.

Fixed

1.16.0 - Alhambra -

Removed

  • Breaking Support for Xcode 11.3.x and Xcode 11.4.x #1604 by @fortmarek
  • Breaking --cache & --include-sources arguments from tuist generate #1712 by @pepibumur.

Added

  • --open argument to the tuist generate command #1712 by @pepibumur.
  • --no-open argument to the tuist focus command to support disabling opening the project #1712 by @pepibumur.
  • Support for running Tuist through swift project #1713 by @pepibumur.

Fixed

  • Generate the default Info.plist file for static frameworks that only contain resources #1661 by @Juanpe
  • Fix Carthage support for binary dependencies #1675 by @softmaxsg
  • Use profile filename to match targets and configs #1690 by @rist

Changed

1.15.0 - Riga -

Changed

Fixed

  • Fix name collision when having multiple templates #1600 by @fortmarek
  • Allow to cache and warm static frameworks too (only dynamic frameworks were cached before) #1590 by @RomainBoulay
  • Add graph visualization in Tuist graph command: "tuist graph --format=png" #1624 by @AndreaCipriani
  • Add support for .xctest dependency for tvOS targets #1597 by @kwridan.
  • Fix missing ui test host applications for apps with "-" characters in their name #1630 by @kwridan.

Added

  • Add an acceptance test suite to cover a test cache warm command on a micro-feature architecture kind of application that is fully statically linked #1594 by @RomainBoulay
  • Add support for setting launch arguments at the target level. #1596 by @jeroenleenarts
  • Add Homebrew cask up #1601 by @leszko11

1.14.0 - Spetzi -

Fixed

  • Disable SwiftLint in the generated synthesized interface for resources #1574 by @pepibumur.
  • Synthesized accessors for framework targets not resolving the path #1575 by @pepibumur.
  • Read coredata version from /.xccurrentversion file #1572 by @matiasvillaverde.

Added

  • Support for --cache to the tuist generate command #1576 by @pepibumur.
  • Included that importing target name in the duplicate dependency warning message #1573 by @thedavidharris
  • Support to build and run the project on Xcode 12 by fixing namespace collisions on Logger #1579 by @thedavidharris

Changed

1.13.1 - More Bella Vita -

Fixed

  • Camelize the name of the Objective-C synthesized object by @pepibumur.

1.13.0 - Bella Vita -

Fixed

  • tuist focus creating new .package.resolved #1569 by @fortmarek
  • Delete schemes whose targets have been replaced by .xcframeworks #1571 by @pepibumur.

Changed

Added

  • Analytics to the website to better understand the usage of the website in order to optimize it and improve the discoverability of the content #1571 by @pepibumur.

1.12.2 -

Fixed

  • Fix a bug introduced in #1523, when a valid source file would result in throwing an invalid glob error #1566 by @natanrolnik

1.12.1 - Waka -

Added

Fixed

  • UpHomebrew (Up.homebrew(packages:)) in Setup.swift correctly checks package installation if the executable doesn't match the package name #1544 by @MatyasKriz.
  • Update Package.swift to correctly encode revision kind as "revision" #1558 by @ollieatkinson.
  • Treat SceneKit catalog the same way as asset catalog [#1546], by @natanrolnik
  • Add core data models to the sources build phase #1542 by @kwridan.
  • Improve app extensions autogenerated schemes #1545 by @kwridan.
  • Ensure the latest semantic version is used when running via tuistenv #1562 by @kwridan.
  • tuist focus not working for workspaces #1565 by @pepibumur.

Changed

  • Add a sourceRootPath attribute to TuistCore.Project to control where Xcode projects are generated #1559 by @pepibumur.
  • Breaking Fail generation if a Source has a non-existent directory in a glob #1523 by @natanrolnik.

1.12.0 - Arabesque -

Changed

Added

1.11.1 - Volare far -

Fixed

  • Missing schemes in generated project for editing #1467 by @fortmarek
  • tuist build cleaning even if the --clean argument is not passed #1458 by @pepibumur.

Changed

  • Use LD_RUNPATH_SEARCH_PATHS instead of embedding dynamic frameworks for unit test targets #1463 by @fortmarek
  • Migrate info plist generator to a project mapper #1469 by @kwridan.

1.11.0 - Volare -

Added

  • Add support for watch architectures #1417 by @davidbrunow
  • Add method to XcodeBuildController to show the build settings of a project #1422 by @pepibumur
  • Support for passing the configuration to the tuist build command #1422 by @pepibumur

Fixed

1.10.0 - Alma -

Added

  • Build command #1412 by @pepibumur
  • Adds a possibility to set Options > Application Language and Application Region for a TestAction on a scheme #1055 by @paciej00

Changed

1.9.0 - Speedy Gonzales -

Added

Fixed

  • Storing the cloud credentials failed because the Keychain syncing was enabled #1355 by @pepibumur.
  • tuist edit doesn't wait while the user edits the project in Xcode #1650 by @pepibumur.
  • Remove CFBundleExecutable from iOS resource bundle target plists #1361 by @kwridan.

Changed

  • Breaking Inherit defaultSettings from the project when the target's defaultSettings is nil #1138 by @pepibumur
  • Manifests are now cached to speed up generation times (opt-out via setting TUIST_CACHE_MANIFESTS=0) 1341 by @kwridan

1.8.0 -

Changed

Added

  • Support for localized sources(e.g., .intentdefinition) #1269 by @Rag0n

Removed

  • Don't set the main and launch storyboard when using the default InfoPlist #1289 by @pepibumur

Fixed

1.7.1 -

Fixed

  • Critical bug caused by a missing SwiftToolsSupport dynamic library by @pepibumur.

1.7.0 -

Changed

  • Point swift tools support repo instead of SPM #1230 by @fortmarek
  • Migrate to new argument parser #1154 by @fortmarek
  • Only warn about copying Info.plist when it's the target's Info.plist #1203 by @sgrgrsn
  • tuist edit now edit's all project manifest #1231 by @julianalonso

Added

  • Support for setting the project id when configuring the cloud server #1247 by @pepibumur.
  • Support for returning SideEffectDescriptors from the graph mappers #1201 by @pepibumur.
  • SwiftUI template #1180 by @fortmarek
  • SettingsDictionary is a typealias for [String: SettingValue]. #1229 by @natanrolnik. Many useful extension methods were added to SettingsDictionary, allowing settings to be defined this way:
let baseSettings = SettingsDictionary()
    .appleGenericVersioningSystem()
    .automaticCodeSigning(devTeam: "TeamID")
    .bitcodeEnabled(true)
    .swiftVersion("5.2")
    .swiftCompilationMode(.wholemodule)
    .versionInfo("500", prefix: "MyPrefix")

Removed

  • Breaking: Deprecated methods from ProjectDescription.Settings #1202 by by @pepibumur.

1.6.0 -

Fixed

Changed

Added

1.5.4 -

Fixed

  • Tuist not working with Xcode < 11.4 by @pepibumur.

1.5.3 -

Added

Fixed

1.5.2 -

Fixed

Changed

Added