Swiftpack.co - Package - tuist/tuist
Tuist Latest Version Slack Community GitHub forks GitHub stars Commit Activity Contributors Latest Commits Twitter Followers Sponsors Backers and sponsors License Powered by Tuist Contributors

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):


kalkwarf

๐Ÿค” ๐Ÿ›

Marek Foล™t

๐Ÿค”

Kas

๐Ÿ’ป

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

Github

link
Stars: 1084

Used By

Total: 1

Releases

1.18.1 - Manaslu - 2020-09-19 08:34:51

Fixed

1.18.0 - Himalaya - 2020-09-17 09:29:48

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 - 2020-09-04 06:47:49

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 - 2020-09-01 10:25:04

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 - 2020-09-16 08:19:09

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 - 2020-08-07 09:51:06

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 - 2020-07-20 08:38:40

Fixed

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

1.13.0 - Bella Vita - 2020-07-18 09:10:17

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 - 2020-07-15 11:39:29

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 - 2020-07-15 09:52:19

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 - 2020-07-11 09:05:15

Changed

Added

1.11.1 - Volare far - 2020-06-22 09:36:44

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 - 2020-06-12 17:53:06

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 - 2020-06-05 11:41:28

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 - 2020-05-29 09:13:04

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 - 2020-05-11 07:24:39

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 - 2020-04-21 14:54:01

Fixed

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

1.7.0 - 2020-04-21 13:34:28

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 - 2020-04-06 15:43:01

Fixed

  • Don't try to delete a file if it doesn't exist https://github.com/tuist/tuist/pull/1177 by @pepibumur

Changed

  • Bump XcodeProj to 7.10.0 https://github.com/tuist/tuist/pull/1182 by @pepibumur

Added

  • Encrypt/decrypt command https://github.com/tuist/tuist/pull/1127 by @fortmarek
  • A link to the example app in the uFeatures documentation https://github.com/tuist/tuist/pull/1176 by @pepibumur.
  • Add ProjectGeneratorGraphMapping protocol and use it from ProjectGenerator https://github.com/tuist/tuist/pull/1178 by @pepibumur
  • CloudSessionController component to authenticate users https://github.com/tuist/tuist/pull/1174 by @pepibumur.
  • Minor improvements https://github.com/tuist/tuist/pull/1179 by @pepibumur

1.5.4 - 2020-03-31 14:50:36

Fixed

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

1.5.3 - 2020-03-31 11:08:09

Added

  • Derived to .gitignore when running tuist init https://github.com/tuist/tuist/pull/1171 by @fortmarek

Fixed

  • Prevent Multiple commands produce XXXXX error produced by multiple test targets using โ€œEmbed Precompiled Frameworksโ€ script https://github.com/tuist/tuist/pull/1118 by @paulsamuels
  • Add possibility to skip generation of default schemes https://github.com/tuist/tuist/pull/1130 by @olejnjak
  • Errors during the manifest parsing are not printed https://github.com/tuist/tuist/pull/1125 by @pepibumur.
  • Warnings because test files are missing in the project scaffolded using the default framework template https://github.com/tuist/tuist/pull/1172 by @pepibumur.

1.5.2 - 2020-03-27 08:15:07

Fixed

  • Projects generated with the framework template generated by the init command dont' compile https://github.com/tuist/tuist/pull/1156 by @pepibumur.

Changed

  • Generate only files with .stencil extension https://github.com/tuist/tuist/pull/1153 by @fortmarek

Added

  • Support for Xcode 11.4 https://github.com/tuist/tuist/pull/1152 by @pepibumur.
  • SWIFT_VERSION is set to 5.2 automatically if it's not set https://github.com/tuist/tuist/pull/1152 by @pepibumur.

1.5.1 - 2020-03-26 06:56:13

Fixed

  • Update config name in the default template https://github.com/tuist/tuist/pull/1150 by @pepibumur
  • Fix example framework template not being generated https://github.com/tuist/tuist/pull/1149 by @fortmarek

1.5.0 - 2020-03-25 18:15:10

Added

  • Scaffold init https://github.com/tuist/tuist/pull/1129 by @fortmarek
  • Scaffold generate https://github.com/tuist/tuist/pull/1126 by @fortmarek
  • Scaffold load https://github.com/tuist/tuist/pull/1092 by @fortmarek
  • Add Mint up https://github.com/tuist/tuist/pull/1131 by @mollyIV

Fixed

  • Remove redundant SDK paths from FRAMEWORK_SEARCH_PATHS https://github.com/tuist/tuist/pull/1145 by @kwridan

Removed

  • Graphing protocol https://github.com/tuist/tuist/pull/1128 by @pepibumur

Changed

  • Optimize TargetNode's set operations https://github.com/tuist/tuist/pull/1095 by @kwridan
  • Optimize BuildPhaseGenerator's method of detecting assets and localized files https://github.com/tuist/tuist/pull/1094 by @kwridan
  • Concurrent project generation https://github.com/tuist/tuist/pull/1096 by @kwridan

1.4.0 - 2020-03-16 09:29:10

Fixed

  • Fix TargetAction when PROJECT_DIR includes a space https://github.com/tuist/tuist/pull/1037 by @fortmarek
  • Fix code example compilation issues in "Project description helpers" documentation https://github.com/tuist/tuist/pull/1081 by @chojnac

Added

  • Allow specifying Project Organization name via new organizationName parameter to Project initializer or via Config new GenerationOption. https://github.com/tuist/tuist/pull/1062 by @c0diq
  • tuist lint command https://github.com/tuist/tuist/pull/1043 by @pepibumur.
  • Add --verbose https://github.com/tuist/tuist/pull/1027 by @ollieatkinson.
  • TuistInsights target https://github.com/tuist/tuist/pull/1084 by @pepibumur.
  • Add cloudURL attribute to Config https://github.com/tuist/tuist/pull/1085 by @pepibumur.

Changed

  • Rename TuistConfig.swift to Config.swift https://github.com/tuist/tuist/pull/1083 by @pepibumur.
  • Generator update - leveraging intermediate descriptors https://github.com/tuist/tuist/pull/1007 by @kwridan
    • Note: TuistGenerator.Generator is now deprecated and will be removed in a future version of Tuist.

1.3.0 - 2020-02-25 15:05:40

Added

  • When using tuist edit it's possible to run tuist generate from Xcode by simply running the target https://github.com/tuist/tuist/pull/958 by @vytis
  • Add FAQ section by @mollyIV
  • Add benchmarking helper tool https://github.com/tuist/tuist/pull/957 by @kwridan.
  • Add metal as a valid source extension https://github.com/tuist/tuist/pull/1023 by @natanrolnik
  • XcodeBuildController utility to TuistAutomation https://github.com/tuist/tuist/pull/1019 by @pepibumur.
  • Add metal as a valid source extension https://github.com/tuist/tuist/pull/1023 by @natanrolnik

Fixed

  • Fix static products false positive lint warning by https://github.com/tuist/tuist/pull/981 @kwridan.
  • TargetAction path without ./ prefix https://github.com/tuist/tuist/pull/997 by @fortmarek
  • Preserve xcuserdata when re-generating projects https://github.com/tuist/tuist/pull/1006 by @kwridan
  • Stable sort order for bcsymbolmap paths by @paulsamuels

Changed

  • Update XcodeProj to 7.8.0 https://github.com/tuist/tuist/pull/create?base=tuist%3Amaster&head=tuist%3Atarget-attributes by @pepibumur.
  • Path sorting speed gains https://github.com/tuist/tuist/pull/980 by @adamkhazi
  • Added support for HTTP_PROXY settings from shell environment. https://github.com/tuist/tuist/pull/1015 by @aegzorz
  • Added "Base" to known regions. https://github.com/tuist/tuist/pull/1021 by @aegzorz
  • Pull bundles from Google Cloud Storage https://github.com/tuist/tuist/pull/1028 by @pepibumur.

- 2020-01-31 19:05:48

Added

  • Best practices page to the documentation https://github.com/tuist/tuist/pull/843 by @pepibumur.
  • Fail CI if there are broken links on the website https://github.com/tuist/tuist/pull/917 by @pepibumur.
  • Excluding multiple files from a target https://github.com/tuist/tuist/pull/937 by @paciej00
  • Better SEO to the website https://github.com/tuist/tuist/pull/945 by @pepibumur.
  • Add fixture generator for stress testing Tuist https://github.com/tuist/tuist/pull/890 by @kwridan.

Fixed

  • The class name of the source files generated by the init command https://github.com/tuist/tuist/pull/850 by @pepibumur.
  • Add RemoveHeadersOnCopy attribute for build files in copy files build phases https://github.com/tuist/tuist/pull/886 by @marciniwanicki
  • Ensure precompiled frameworks of target applications aren't included in UI test targets https://github.com/tuist/tuist/pull/888 by @kwridan
  • Make the scheme generation with testable targets stable https://github.com/tuist/tuist/pull/892 by @marciniwanicki
  • Fix project header attributes https://github.com/tuist/tuist/pull/895 by @kwridan
  • Excluding files from target doesn't work in all cases https://github.com/tuist/tuist/pull/913 by @vytis
  • Support for Core Data mapping modules https://github.com/tuist/tuist/pull/911 by @andreacipriani
  • Deep nested hierarchy in the project generated by tuist edit https://github.com/tuist/tuist/pull/923 by @pepibumur

Changed

  • Turn models from TuistCore that are clases into structs https://github.com/tuist/tuist/pull/870 by @pepibumur.

1.1.0 - 2019-12-27 15:58:43

Changed

  • Extracted loading logic into its own framework, TuistLoader https://github.com/tuist/tuist/pull/838 by @pepibumur.

Added

  • TuistGalaxy & TuistAutomation targets https://github.com/tuist/tuist/pull/817 by @pepibumur.
  • Support ignoring specific source file pattern when adding them to the target https://github.com/tuist/tuist/pull/811 by @vytis.
  • Made targets testable if there is a corresponding test target https://github.com/tuist/tuist/pull/818 by @vytis.
  • Release page to the documentation https://github.com/tuist/tuist/pull/841 by @pepibumur.

1.0.1 - 2019-12-17 11:17:05

1.0.1

Fixed

  • Pass through DEVELOPER_DIR when set by the environment when determining the path to the currently selected Xcode. @ollieatkinson

1.0.0 - 2019-12-17 09:34:56

Changed

  • Run pipelines with Xcode 11.2.1 on CI @pepibumur.

Removed

  • Breaking Generate manifests target as part of the generated project https://github.com/tuist/tuist/pull/724 by @pepibumur.
  • The installation no longer checks if the Swift version is compatible https://github.com/tuist/tuist/pull/727 by @pepibumur.
  • Don't include the manifests in the generated workspace https://github.com/tuist/tuist/pull/754 by @pepibumur.

Added

  • Add ProjectDescription.Settings.defaultSettings none case that don't override any Project or Target settings. https://github.com/tuist/tuist/pull/698 by @rowwingman.
  • ProjectEditor utility https://github.com/tuist/tuist/pull/702 by @pepibumur.
  • Fix warnings in the project, refactor SHA256 diegest code https://github.com/tuist/tuist/pull/704 by @rowwingman.
  • Define ArchiveAction on Scheme https://github.com/tuist/tuist/pull/697 by @grsouza.
  • tuist edit command https://github.com/tuist/tuist/pull/703 by @pepibumur.
  • Support interpolating formatted strings in the printer https://github.com/tuist/tuist/pull/726 by @pepibumur.
  • Support for paths relative to root https://github.com/tuist/tuist/pull/727 by @pepibumur.
  • Replace Sheme.testAction.targets type from String to TestableTarget is a description of target that adds to the TestAction, you can specify execution tests parallelizable, random execution order or skip tests https://github.com/tuist/tuist/pull/728 by @rowwingman.
  • Galaxy manifest model https://github.com/tuist/tuist/pull/729 by @pepibumur.
  • Make scheme generation methods more generic https://github.com/tuist/tuist/pull/730 by @adamkhazi @kwridan.
  • Workspace Schemes https://github.com/tuist/tuist/pull/752 by @adamkhazi @kwridan.
  • SimulatorController with method to fetch the runtimes https://github.com/tuist/tuist/pull/746 by @pepibumur.
  • Add RxSwift as a dependency of TuistKit https://github.com/tuist/tuist/pull/760 by @pepibumur.
  • Add cache command https://github.com/tuist/tuist/pull/762 by @pepibumur.
  • Utility to build xcframeworks https://github.com/tuist/tuist/pull/759 by @pepibumur.
  • Add CacheStoraging protocol and a implementation for a local cache https://github.com/tuist/tuist/pull/763 by @pepibumur.
  • Add support for changing the cache and versions directory using environment variables https://github.com/tuist/tuist/pull/765 by @pepibumur.
  • Reactive interface to the System utility https://github.com/tuist/tuist/pull/770 by @pepibumur
  • Workflow to make sure that documentation and website build https://github.com/tuist/tuist/pull/783 by @pepibumur.
  • Support for xcframework https://github.com/tuist/tuist/pull/769 by @lakpa
  • Support generating info.plist for Watch Apps & Extensions https://github.com/tuist/tuist/pull/756 by @kwridan

Fixed

  • Ensure custom search path settings are included in generated projects https://github.com/tuist/tuist/pull/751 by @kwridan
  • Remove duplicate HEADER_SEARCH_PATHS https://github.com/tuist/tuist/pull/787 by @kwridan
  • Fix unstable scheme generation https://github.com/tuist/tuist/pull/790 by @marciniwanicki
  • Add defaultConfigurationName to generated projects https://github.com/tuist/tuist/pull/793 by @kwridan
  • Add knownRegions to generated projects https://github.com/tuist/tuist/pull/792 by @kwridan