Commit Graph

279 Commits

Author SHA1 Message Date
George Navarro 3251691527 Feature: Custom Working Directory (#1543)
* Added `customWorkingDirectory` and `useCustomWorkingDirectory` properties to `Scheme.Run`

* Use new `customWorkingDirectory` and `useCustomWorkingDirectory` when generating `XCScheme.LaunchAction`

* Updated ProjectSpec.md to document new `customWorkingDirectory` and `useCustomWorkingDirectory` properties

* Fix for not setting customWorkingDirectory in the toJSONValue function

* Added test to make sure usCustomWorkingDirectory value is true when the customWorkingDirectory is set to non nil

* Change to infer the value of SchemaGenerator.LaunchAction.useCustomWorkingDirectory based on the value of Schema.Run.customWorkingDirectory

* Removed useCustomWorkingDirectory from the project spec now that it is no longer user defined.
2025-07-22 19:16:05 +10:00
Yonas Kolb c32aa4cc94 Synced folders (#1541)
* update xcodeproj to 8.27.7

* add syncedFolder source type

* drop xcode 15 support

* Rely on fileReference instead of adding new synchronizedRootGroup (#1557)

* fix: don't include untracked children in cache

---------

Co-authored-by: Kirill Yakimovich <kirill.yakimovich@gmail.com>
2025-07-17 15:15:43 +10:00
Marcos Griselli 172a494704 Update Xcodeproj to 8.24.3 (#1515)
* Update Xcodeproj to 8.24.3

* Bump macOS version

* maintain support for removed gpuValidationMode enum

---------

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2025-04-06 19:50:09 +10:00
Vakhid Betrakhmadov 68b0d1206f Support preferred screen capture format in scheme test action (#1450)
* Support preferred screen capture format in scheme test action (resolves #1443)

* preferredScreenCaptureFormat decoding test

---------

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2025-02-17 17:07:29 +11:00
Maxim Krouk 434dfeca2e Add excludeFromProject option for local packages (#1512) 2025-02-17 16:08:54 +11:00
Gio Lodi d5656b6e40 Fix typo "suger" -> "sugar" (#1499)
Love the tool. Noticed a little typo in the docs. Thanks!
2024-08-29 20:54:35 +10:00
Mizuo Nagayama 8beb3b2d2d fix plural in ProjectSpec.md (#1487) 2024-08-06 05:35:27 +09:00
Ernesto Cambuston 45151c2882 Allow changing macro expansions on test actions. (#1468)
* Allow to override test macroExpansions

* update doc

* style

* Address feedback from PR

* fix build

* add toJSONValue encoding
2024-07-10 12:19:30 +10:00
Tatsuki Otsuka 274ce7342c Disallow the "watchOS" supported destination for multiplatform apps (#1470)
* Reject multiplatform apps that support the watchOS destination

This commit also fixes existing test cases.

* Add test cases

* Update docs

* Update changelog
2024-05-17 23:00:09 +10:00
Hilton Campbell 632ca2d419 Enable adding local Swift packages to the project root (#1413)
* Enable adding local Swift packages to the project root

* Update CHANGELOG.md
2024-04-07 23:18:24 +10:00
Yonas Kolb 6694943ad8 add watchOS supported destination to docs 2024-04-07 22:33:42 +10:00
Yonas Kolb 9df3e62734 fix commandLineArguments example 2024-04-07 21:27:24 +10:00
Giovanni Amati 97d36fd1d2 Support for multiple deployment targets with xcode 14 (#1336)
* platformFilters on Dependecies

* platformFilters on sources

* fixed current unit tests

* renamed enum to SupportedPlatforms

* supportedPlatforms field for target

* errors

* renamed errors

* inferPlatformFiltersByPath flag

* changed priority to generate filter

* fixed parsing

* fixed init

* unit test supportedPlatforms

* unit tests for errors

* fixing build settings and unit tests

* added new settingsPresets

* new check errors and unit tests

* case insensitive match

* fixed skipping cross platform target

* json decode

* unit tests inferPlatformFiltersByPath and platformFilters for sources

* mocked files

* fixing unit tests

* first test on dependecies

* unit tests completed

* fixed unit tests

* changelog

* doc changes

* doc changes

* doc changes

* doc changes

* doc changes

* doc changes

* doc changes

* doc changes

* fixed doc

* fixed unti tests style

* fixed regex

* fixed doc

* addressing comments

* Added TestProject, moved unit tests resources in another folder

* Raising error if platform is an array

* unit test on new error

* fixed error enum

* Integrated in TestProject

* committed TestProject

* unit test error

* fixing spm deps in test project

* pushed testProject

* pushed testProject

* pushed testProject fix

* comment on isResolved property

* renameing supportedPlatforms to supportedDestinations

* renameing supportedPlatforms to supportedDestinations

* renameing test app

* checked out old file

* fixing test app

* working on auto baseSDK

* fixed deploymentTarget

* renamed errors

* fixed presets

* remamed index to priority

* small comments

* removed isResolved in target and fixed error check

* added unit tests

* fixed doc

* fixed doc

* fixed doc

* fixed doc

* fixed test app

* add visionOS and more error check and testing

* fixed supported destinations priority and tests

* fixed doc

* solved conflicts

* fixed conflicts

* renamed everything

---------

Co-authored-by: Giovanni Amati <giovanni.amati@sky.uk>
2023-10-31 20:55:38 +11:00
Ahmed Khalaf 26fc38a664 Typo in ProjectSpec.md (#1405)
schems -> schemes

It ain't much, but it's honest work 😄
2023-10-02 05:49:46 +00:00
Simon Støvring 486df5da4d Supports specifying multiple package products (#1395)
* Supports specifying multiple package products

* Adds #1395 to CHANGELOG.md

* Updates documentation

* Adds fixture

* Adds changes to pbxproj after changing fixture

* Elaborates on linking options in "Package dependency" section
2023-09-11 11:49:38 +10:00
BarredEwe d8d5457f48 Add support for adding build tool plugins to targets (#1374)
* Add support for adding build tool plugins to targets

* Added Plugin validation

* Added some tests

* Limited the minimum version to 5.7 Swift

* Update .gitignore

Co-authored-by: freddi(Yuki Aki) <freddi-kit@users.noreply.github.com>

* Update CHANGELOG.md

Co-authored-by: freddi(Yuki Aki) <freddi-kit@users.noreply.github.com>

* Update CHANGELOG.md

Co-authored-by: freddi(Yuki Aki) <freddi-kit@users.noreply.github.com>

* Update Docs/ProjectSpec.md

Co-authored-by: freddi(Yuki Aki) <freddi-kit@users.noreply.github.com>

* Added a fixture for testing plugins

* Update CHANGELOG.md

* Installed the release version of XcodeProj

---------

Co-authored-by: freddi(Yuki Aki) <freddi-kit@users.noreply.github.com>
2023-08-16 22:22:16 +10:00
Yonas Kolb 5f1efd90ef Update XcodeProj and add RuntimeIssue breakpoint (#1384)
* support RuntimeIssue breakpoint

* drop xcode 12 and 13 support

* changelog
2023-08-12 23:23:12 +10:00
kaseken c701d3ddf7 Update Project.md (#1382)
Use true or false instead of yes or no, for boolean default values in Build Script options.
2023-08-11 15:35:19 +10:00
Antoine Piellard a10bd4baa0 Add support to disable "Thread Performance Checker" (#1380)
* Add disableThreadPerformanceChecker scheme option

* Update changelog
2023-08-08 08:50:13 +10:00
Satsuki Hashiba 3a215ce999 Add support for visionOS (#1379)
* Add support for visionOS

* Update ProjectSpec

* Add carthageName property for .visionOS

* Update CHANGELOG.md and ProjectSpec.md

* Add visionOS yml to SettingPresets/Platforms and SettingPresets/Product_Platform

---------

Co-authored-by: Satsuki Hashiba <hashiba.satsuki@linecorp.com>
2023-08-07 22:12:34 +10:00
LouisLWang f33d600d50 adding support for enableGPUValidationMode (#1294)
* adding support for enableGPUValidationMode

* encode enableGPUValidationMode in Scheme.Run.toJSONValue()

* ci: commit fixtures changes

* docs: Add changelog for enableGPUValidationMode

update Doc ProjectSpec.md

* docs: update ProjectSpec.md for enableGPUValidationMode default value

---------

Co-authored-by: wanglulu <louiswang@lilith.com>
2023-07-13 20:58:32 +10:00
Yonas Kolb 5cad63987e Update ProjectSpec.md 2023-04-27 16:59:48 +10:00
Bartosz Kosiorek 10b99f1be0 Update documentation of Settings and Setting Groups (#1352)
What was changed:
- updated index,
- improve examples,
- improve formatting,
- add reference to Settings Group
- add information that Simple Map will be skipped if used with base, groups or configs
2023-04-27 16:54:58 +10:00
mat1th 8256008778 Add possiblity to add resources before the sources build phase (#1351)
* feat: Add possiblity to add resources before the sources build phase;

* feat(ios): Add change to Docs + CHANGELOG;

* fix: rename resourcesBeforeSourcesBuildPhase to putResourcesBeforeSourcesBuildPhase to make it more clear;

* Update CHANGELOG.md

---------

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2023-04-25 11:57:44 +10:00
Sara Tavares 5a34c489e1 chore(typos): fix typos (#1340) 2023-03-23 10:29:08 +11:00
Jierong Li d1dd93aac4 Rebase #177 - Shared breakpoints support (#693)
* Resolves #173 - Shared breakpoints support

* Added breakpoints full documentation

* Invalid breakpoint just throw JSONUtilities decoding error.

* Use enumeration types instead of String for extensionIDs

* Remove a necessary line

* Remove unnecessary custom Equatable implementation

* Update CHANGELOG.md

* Ignore empty breakpoints

* Update Docs/ProjectSpec.md

Fix a typo

Co-Authored-By: Yonas Kolb <yonaskolb@users.noreply.github.com>

* Change some properties that should be Int to Int

* Create 2 typealiases

* Use BreakpointType where it is missing

* Remove unused Location

* Change some names

* Add Breakpoint.Scope

* Add Breakpoint.StopOnStyle

* Change the type of the raw value to String

* Remove some properties that may cause confusing

* Require filePah and line when the type is .file

* Add tests about decoding breakpoints

* Add Breakpoint.Action.ConveyanceType

* Add default value for waitUntilDone

* Add Breakpoint.Action.SoundName

* Add tests about decoding breakpoint actions

* Fix some issues in ProjectSpec.md

* Improve ProjectSpec.md

* Add missing condition

* Add breakpoints to project.yml

* Use unwarp

* Remove the Breakpoint suffix

* Refactor BreakpointType

* Refactor Breakpoint.Action

* Remove unnecessary properties

* Adjust the line wrapping style for BreakpointGenerator

* Support column breakpoints

---------

Co-authored-by: Alex Rupérez <alejandro.ruperez@intelygenz.com>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2023-02-28 22:00:39 +11:00
Wendy Liga 43e40a9efc Added support for scheme management (#1142)
* wip

* Added scheme management metadata properties to TargetScheme

* wip

* Added Scheme.Management for metadata

* use sharedDefault

* move generateSchemeManagement to SchemeGenerator

* revert

* update changelog

* update docs

* update test case

* remove

* remove unused file

* revert

* changed on fixtures project

* Updated ProjectSpec docs index

* User Scheme.Management also for TargetSchemes, use XCUserData

* Changelog

* Switch XcodeProj back tuist/XcodeProj - 8.9.0

* Reindent TOC Docs/ProjectSpec.md

* Revert swift tools version

---------

Co-authored-by: Tieme van Veen <tiemevanveen@hotmail.com>
2023-02-24 09:49:57 +11:00
Marcin Chojnacki 80e317206b Remove SPM configurations warning from ProjectSpec (#1329)
ProjectSpec states that Swift Packages don't work in projects with configurations other than `Debug` and `Release`. It provides a link to Swift bugtracker to issue marked as duplicate. Original issue that it points to is closed and fixed since 2020 with Xcode 12.

Let's remove misleading note from ProjectSpec.

https://github.com/apple/swift-package-manager/issues/4674
2023-02-18 20:32:16 +11:00
Bobby Sudekum 6f331720c9 Add enableGPUFrameCaptureMode to Scheme (#1251) 2022-09-09 18:43:39 +10:00
freddi(Yuki Aki) 594c67fbe9 Add enable option for include to enable optional including for addtional spec (#1242)
* add new option enable for include of spec

* fix to see the environment variable when parsing include

* add test for include with environment variable

* fix how to parse boolean value

* add spec about enable for include

* add Change Log

* fix the number of PR in changelog

* fix include test to make more clear

* fix test to focus enable option more

* fix english error

* fix to expand variable only one time

* add new test case by setting environment object as NO
2022-08-12 16:21:43 +10:00
Shinolr ac525a445e remove redundant bracket (#1243) 2022-08-10 00:32:33 +10:00
Isaac Halvorson 34f50d645e Correct name of package in example yaml (#1240)
Hey there, I just noticed that one of the example yaml snippets had the wrong package name specified.
2022-08-02 08:27:14 +10:00
Aleksei Sapitskii c082bc0c7c Fix XcodeGen building after XcodeProj update to 8.8.0 (#1228)
* Fix XcodeGen building after XcodeProj update to 8.8.0

**Reason**
- XcodeProj has been updated and has API breaking changes

**Content**
- Added new enum case handling in `Linkage`
- Renamed the enum case name for `XCWorkspaceDataFileRef.init`

* add new product type to docs

* update changelog

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-07-16 16:46:42 +10:00
Luca Bartoletti 19817f3192 Fix watchapp2-container product name (#1219)
The correct name is `application.watchapp2-container`
2022-07-16 16:46:31 +10:00
Yonas Kolb e35f7df14d Add Test Plans (#716)
* upgrade scheme and project versions

* parse test plans

* remove xctestplan from resources

* generate test plan references in schemes

* add test plan to fixture

* non-mutable way of creating [XCScheme.TestPlanReference]

* update fixture version

* Add documentation

* Add default test plan option

# Conflicts:
#	Sources/ProjectSpec/Scheme.swift
#	Tests/Fixtures/paths_test/included_paths_test.yml
#	Tests/ProjectSpecTests/SpecLoadingTests.swift

* Add test plan validation

# Conflicts:
#	Tests/ProjectSpecTests/ProjectSpecTests.swift

* Check for multiple default test plans

* set first plan as default default plan

* small tweaks

* fix test plan path properties

* add test plants to target scheme

* docs

* fix fixture test plan path

* update changelog

* added ability to disable test plan path validation

Co-authored-by: Ota Mares <ota@rebuy.com>
2022-05-10 13:27:31 +10:00
John Connolly be0c3c3926 Added ability to use custom location for local Swift packages (#1175)
* Added xcodePath functionality

* Added xcodePath functionality

* Renamed Xcode path to group

* Updated change log and added fixture tests
2022-03-25 11:26:06 +11:00
yonaskolb f6cdd090c2 use new TestableTargetReference in TargetScheme.coverageTargets 2022-03-20 14:44:14 +11:00
freddi(Yuki Aki) 245f17117a Support test target for local Swift Package (#1169)
* support local Swift Package test case into test scheme

* update test

* add test

* update CHABGELOG.md

* Update CHANGELOG.md

* revert resolved package test

* Update Sources/XcodeGenKit/SchemeGenerator.swift

Co-authored-by: Kohki Miki <giginet.net@gmail.com>

* make TargetReference convert from new JSON format

* add .package for location of target reference

* receive target reference format at target of scheme

* update test

* update XcodeProj

* add test and fix small bugs

* update docs

* support multiple style of coverageTargets

* add edge case of parsing test targets

* fix docs

* Update Docs/ProjectSpec.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* create TestableTargetReference for not making API complex

* fix code format

* fix parameter name to Testable Target Reference

* support directly writing key of Testable Target Reference

* fix compile error in build

Co-authored-by: Kohki Miki <giginet.net@gmail.com>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-03-20 14:27:29 +11:00
Gabriel Lanata 3b5ca91b76 Add coverage targets for target schemes (#1189)
* Changes

* Tests and docs

* Update fixtures

* Update CHANGELOG.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-03-17 15:56:03 +11:00
Kristopher Jackson c62277f150 Added location option to test target (#1153)
* Added location option to test target

* Updated XcodeProj

* Updated packages

* Removed extra toJSONValue()

* Update Docs/ProjectSpec.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* Update Sources/ProjectSpec/Scheme.swift

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* Update Sources/ProjectSpec/Scheme.swift

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>

* Removed optional location

* Renamed SimulateLocation to Location

* Removed Location struct and just pass location string directly

* Added tests for location with a test target

* Added example of location inside test target to project.yml

* Removed extra test target and add location to existing target

* Updated App_Scheme.xcscheme

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-01-07 11:09:58 +11:00
Jakub Bednar d35d22f08b Added support for dependency destination specification. (Resolves #1038) (#1039)
* Added support for dependency destination specification. (Resolves #1038)

* More generic way covering more different dependency types. (#1038)

* Added unit-test for each possible dependency combination. First test current embeding then the new one with custom copy spec. (#1038)

* Review fixes. (#1038)

* Minimized unit-test boiler-plate (#1038)

* Update CHANGELOG.md

Co-authored-by: Jakub Bednář <jakub.bednar@avast.com>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2021-07-15 12:10:34 +10:00
Dalton Claybrook 66b1db4b5c Add support for specifying the UI testing screenshot behavior in a scheme test action (#942)
* Support for specifying UI testing snapshot behavior in scheme test action

* Add tests for new screenshot scheme options

* Update changelog

* Add new fields to Scheme.Test json encoding

* Only save values to JSON if they aren't the defaults

* Using new defaults constants
2021-06-27 22:25:26 +10:00
Dalton Claybrook 81bd52be4b Add support for conditionally linking dependencies based on platform (#1087)
* Add initial support for conditional platform dependencies

* Add tests for conditional platforms

* Update docs and changelog

* Respond to PR feedback

* Change name of field from 'conditionalPlatforms' to 'platforms'

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2021-06-20 20:19:02 +10:00
Vlad Gorlov 4455919be3 Added support for "driver-extension" and "system-extension" product types (#1094)
* Squashed commit of the following:

commit 0bcdce0d1f0f1d13fb5a284404e4eaea4e805a89
Author: Vlad Gorlov <volodymyr.gorlov@gmail.com>
Date:   Fri Jun 18 00:58:50 2021 +0200

    [#1092] Dependency version update.

commit 0040c46fd4ce9f42102faeb744104027b6c2c757
Author: Bruce Evans <bruce.evans.dev@gmail.com>
Date:   Wed Jun 16 09:12:01 2021 +0900

    Add Support for DocC in Xcode 13 (#1091)

    * Add support for DocC

    DocC "files" are actually folders `.docc` appended to the name, but Xcode 13 treats them differently. Therefore, we need to exclude them from the normal BuildPhase.

    Resolves #1089

    * Add tests for DocC

    Expanded an existing test to include .docc support.

    Also added a .docc catalog to the Test Project.

    * Update changelog.md

    * Update changelog.md to get the correct PR Link

commit 5bb7ef4e1c632f80f63c49ee280d64b8dab1603f
Author: Vlad Gorlov <volodymyr.gorlov@gmail.com>
Date:   Wed Jun 16 01:03:42 2021 +0200

    Added support for missed product types.

commit 3f8bfdf749d0d15da8490550b95a31cf961d8649
Author: Vlad Gorlov <volodymyr.gorlov@gmail.com>
Date:   Wed Jun 16 00:01:47 2021 +0200

    Added support for missed product types.

commit 235ebe4fe906716a6a37421346318fc6515836ce
Author: Vlad Gorlov <volodymyr.gorlov@gmail.com>
Date:   Tue Jun 15 23:53:52 2021 +0200

    Added support for missed product types.

* [#1094] Fixes failing tests.

* [#1094] Added test project targets.

* [#1094] Making iig-file type of source code.

* [#1094] Attempt to fix CI failure.
2021-06-20 14:08:38 +10:00
Elliott Williams 8bfa2f33e4 Revert "Change FRAMEWORK_SEARCH_PATH for xcframeworks (#1015)" (#1081)
* Revert "Change FRAMEWORK_SEARCH_PATH for xcframeworks (#1015)"

This reverts commit 7b8f5a117f.

* Don't actually revert the changelog entry

* ProjectSpec.md: document how to link an xcframework

* Update CHANGELOG.md
2021-05-22 10:32:09 +10:00
Kryštof Matěj 38888237c7 Add platform filter to dependencies (#951) 2021-05-18 20:52:24 +10:00
freddi(Yuki Aki) 4233cc8578 Support runPostActionsOnFailure on build scheme (#1075)
* supports runPostActionsOnFailure on build scheme

* updates test for runPostActionsOnFailure

update runPostActionsOnFailure tests

* update Docs for runPostActionsOnFailure

* update change log

* Update CHANGELOG.md

* Update CHANGELOG.md
2021-05-06 12:54:33 +10:00
Artem Semavin 0ac7a5f8c6 Added support for SelectedTests in schemes Test configuration. (#913)
* added support for selectedTests in test shemes

* added PR description to changelog

* CHANGELOG fix

* use presence of selectedTests for useTestSelectionWhitelist

Co-authored-by: Artem Semavin <Artem Semavin>
Co-authored-by: yonaskolb <yonaskolb@gmail.com>
2021-04-08 23:01:28 +10:00
André 209afcc898 Allowing override LastUpgradeCheck and LastUpgradeVersion (#1013)
* Allowing the property LastUpgradeCheck and LastUpgradeVersion to be overrided

* Updating changelod and project spec

* Updating changelog

Co-authored-by: André Lucas Ota <andrel.ota@PPM-SPO-6835.local>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2021-04-08 22:20:10 +10:00
freddi(Yuki Aki) cf88681749 Support macroExpansion on run scheme (#1036)
* allow to specify macroExpansion on schemes

* fix json parsing on macroExpansion

* set macroExpansion only launch scheme

* add test for macroExpansion

* add macroExpansion description

* add macroExpansion to Change Log

* Update CHANGELOG.md

* add App_Extension scheme for macroExpansion

* change example of macroExpansion in Fixtures project

* fix to keep back to keep back compatibility as possible

* Apply suggestions from code review

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2021-03-21 20:02:01 +11:00