275 Commits
Author SHA1 Message Date
matsuji da8aad004f Add a new CopyFilesBuildPhase, "Embed ExtensionKit Extensions" (#1230)
* Embed ExtensionKit Extensions

* Fix explicitFileType for extensionKit

* Update ChangeLog

* Fix if statement structure

* Add a new example extension to Tests/Fixtures/TestProject/

* Update Tests/Fixtures/TestProject/Project.xcodeproj

* Comment out example for extension kit extension in Tests/Fixtures/TestProject/

* Update Tests/Fixtures/TestProject/Project.xcodeproj
2022-07-21 21:25:34 +10:00
Aleksei SapitskiiandYonas Kolb 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
Yonas Kolb 0822efa5bd update xcodeproj (#1213) 2022-05-10 15:03:39 +10:00
Yonas KolbandOta Mares 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
Yuya Hirayama 047e9968d6 Fix docc support (#1202)
* Update FileType.swift

* Update SourceGeneratorTests.swift

* Update fixture

* Update CHANGELOG.md
2022-04-05 14:08:02 +10:00
Maxim Bunkov 8530da5d00 fix(carthage): shell login (#1179)
* fix(carthage): shell login

* tests(fixtures): update fixtures

* tests(changelog): update changelog
2022-03-22 10:24:41 +11:00
Evan ColemanandYonas Kolb 7b9d95ab4c Skip compile sources for watch apps (#1185)
* Skip compile sources build phase for watch2 apps if empty

* add changelog entry

* Fix tests

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-03-20 14:19:23 +11:00
Gabriel LanataandYonas Kolb 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 JacksonandYonas Kolb 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
Michael TholeandKryštof Matěj fa6c5c9173 Fix Xcode 13 build (alternate PR to kick CI) (#1130)
* Fix Xcode 13 build

* Extend Xcode 12 workaround to Xcode 13

* Update CHANGELOG

* Moved CHANGELOG into 'Next Version' section

Co-authored-by: Kryštof Matěj <krystof.matej@cleverlance.com>
2021-09-24 09:11:10 +10:00
Kryštof Matěj 12511afed8 Fix platformFilter for package dependencies (#1123) 2021-09-14 23:11:25 +10:00
Yuta Saito a4d7a61a68 Fix broken codesign option for bundle dependency (#1104)
* Fix missing codesign option for bundle dependency

* Add codeSign: false test case for bundle dependency

* Update CHANGELOG.md
2021-07-15 19:06:33 +10:00
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 ClaybrookandYonas Kolb 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
Bruce Evans b8af21d12f 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
2021-06-16 10:12:01 +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
Yonas Kolb 7c510af3d7 Fix Xcode alert on generation (#1072)
* fix xcode warning alert on regeneration

* commit fixture diffs

* update changelog
2021-05-06 08:33:42 +10:00
Elliott Williams fb559ba153 CarthageDependencyResolver: ignore order-only dependencies (#1041)
* CarthageDependencyResolver: ignore target-only dependencies

* Update fixtures for expected changed in watchOS apps' FRAMEWORK_SEARCH_PATHS

* Update CHANGELOG.md
2021-05-01 15:39:55 +10:00
Liam Nichols 1b57ba5c75 Improve INFOPLIST_FILE handling to only omit used Info.plist's from Copy Bundle Resources Build Phase (#1027)
* Update TestProject Fixture to include GoogleService-Info.plist resource bsaed on 2.18.0 generator

* Update TestProject fixture to include an Info.plist file named 'App-Info.plist' to simulate scenario in #945

* Resolve INFOPLIST_FILE values upfront ahead of resolving all source files for a target

* fixup! Resolve INFOPLIST_FILE values upfront ahead of resolving all source files for a target

* fixup! Resolve INFOPLIST_FILE values upfront ahead of resolving all source files for a target

* Refactor SourceGenerator to remove some redundant arguments on internal methods when generating source files in a target

* Update SourceGenerator to accept '[Path: BuildPhaseSpec]' of preferred build phases in order to prioritise over 'default' value. Remove explicit Info.plist check from SourceGenerator. Update PBXProjGenerator to inject hash of build phases for resolved INFOPLIST_FILE values. Update SourceGeneratorTests to comply with change where only the FIRST Info.plist is excluded from copy bundle resources build phase, additionally resolve absolute path

* Ensure project.basePath is always absolute when resolving Info.plist path relative to project

* Add test coverage in SourceGeneratorTests.swift

* Update CHANGELOG.md

* Reword CHANGELOG.md
2021-04-08 15:38:21 +10:00
freddi(Yuki Aki)andYonas Kolb 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
Joseph Colicchio 05ea968f70 Bugfix/StoreKitConfiguration BuildPhase (#1026)
* Copy storekit to bundle resources by default

* Fix tests

* Update changelog
2021-02-24 08:33:54 +11:00
Bartosz PolaczykandFernanda Geraissate 2c600a7c64 Add Discovered Dependency File (#1012)
* Upgrade XCodeProj to 7.14.0

* Bump to XcodeProj to fork

* Add script discoveredDependencyFile

* Align cfbundle test

* Add changelog mock

* Update Documentation

* Update SPM manifest

* Change property name

* Verify defult dependency file to nil

* Add JSON encodable test

* Add PR number

Co-authored-by: Fernanda Geraissate <fernandag@spotify.com>
2021-02-15 12:43:41 +11:00
Joseph ColicchioandGemma Barlow 50aedc4511 Feature/Store Kit Configuration (#964)
* Preemptively fix compilation for latest XcodeProj

* Add StoreKitConfiguration to scheme and generator

* Add scheme generator test

* Fix and add tests

* Support StoreKitConfiguration in TargetScheme

* Set default type of `storekit` to `.none`

* Upgrade XcodeProj to 7.15.0

* Create struct for StoreKitConfiguration

* Update tests

* Add storekit configuration to test project

* Update changelog

* Update project spec

* Fix xcodeprojs

* Fix projects

* Capitalize String

* Update CHANGELOG.md

Co-authored-by: Gemma Barlow <gemmakbarlow@gmail.com>

* Refactor StoreKitConfiguration init from json

* Change `forWorkspace` to `pathPrefix` and add tests

* Replace StoreKitConfiguration struct with string + option

* Fix tests

* Update project spec

* Fixup changelog

* Add `See Options` to `storeKitConfiguration` in project spec

Co-authored-by: Gemma Barlow <gemmakbarlow@gmail.com>
2021-02-15 11:58:16 +11:00
Joseph Colicchio 0eeb6369ec Legacy / Settings Relative Paths (#981)
* Adjust header search paths and legacy working directory for relative included projects

* Undo change to HEADER_SEARCH_PATHS

* Add test

* Update changelog

* Fix test

* Undo test changes

* Fix tests
2021-01-14 16:59:59 +11:00
Jierong Li 04d6749441 Fix a typo (#993)
Rename baseOnDependencyAnalysis to basedOnDependencyAnalysis.
2020-12-03 11:20:13 +11:00
Jierong Li efed786cec Add baseOnDependencyAnalysis to Project Spec Build Script (#992)
* Add baseOnDependencyAnalysis to BuildScript

* Add tests for baseOnDependencyAnalysis

* Update CHANGELOG.md
2020-12-03 08:52:24 +11:00
Elliott Williams 2601d39792 Support Linux by upgrading XcodeProj and Spectre (#988)
* Bump XcodeProj and Spectre

* Add LinuxMain.swift

* Linux test fixups

* Add CI job for ubuntu-latest

* Use URLs in glob logic to avoid Linux/Mac foundation inconsistencies

* fatalError when --enable-test-discovery is not used

* Update fixtures

They changed because of a bugfix in XcodeProj: https://github.com/tuist/XcodeProj/pull/563

* Update CHANGELOG.md
2020-11-24 11:28:41 +11:00
Liam Nichols 9fdc194771 Add useBaseInternationalization to SpecOptions (#961)
* Add 'useBaseInternationalization' setting to SpecOptions (default value of true)

* Update PBXProjGenerator to only include Base into knownRegions if it was either detected on the filesystem or if the project spec options opt into it

* Update ProjectSpec.md to include useBaseInternationalization

* Update AnotherProject to demonstrate Base Internationalization opt out

* Update CHANGELOG.md
2020-10-13 15:20:53 +11:00
Yonas Kolb 4988388cc5 Update to Xcode 12 (#960)
* update to final xcode 12 version

* only generate and test xcode 12 project

* update default xcode version to 12

* update changelog
2020-10-02 18:42:50 +10:00
Liam Nichols d959bdfddd Enable Base Localization by default (#955)
* Update PBXProjGenerator to include 'Base' developmentRegion and file system derived knownRegions in the output knownRegions

* Update CHANGELOG.md

* Run tests to update fixtures
2020-10-02 18:23:38 +10:00
Liam Nichols 5ea9b4eec4 Update SettingsPresets to include new and modified values as part of Xcode 12 (#953)
* Update SettingsPresets to include new and modified values as part of Xcode 12's TemplateInfo.plist

* Update CHANGELOG.md

* Update Test Fixtures after running unit tests

* Revert change to GCC_PREPROCESSOR_DEFINITIONS order (https://github.com/yonaskolb/XcodeGen/pull/953\#discussion_r497486482)

* Run tests to update fixtures
2020-10-02 17:52:30 +10:00
Brentley JonesandYonas Kolb 5ac96741bc Improved Application Extension scheme generation (#932)
* Default extensions to launchAutomaticallySubstyle "2"

* Don't use debugger launcher with extensions

Xcode schemes don't use the LLDB launcher, even when debugging is enabled.

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2020-09-06 15:40:32 +10:00
Dan Fleming b11d5d2a1c Run CI against Xcode 12 beta (#936)
* Run CI against Xcode 12 beta

* Update CHANGELOG

* fixtures: add workarounds for Xcode 12

* Refine xcode 12 workaround to not fail for xcode 11
2020-08-22 12:23:00 +10:00
Brentley JonesandDan Fleming bc51191a3a Add support for App Clips (#909)
* Add support for App Clips

Embeds App Clips into the containing app when they are a dependency.

* Patch #909 to not fail CI (#917)

Co-authored-by: Dan Fleming <dflems@spotify.com>
2020-08-16 20:02:56 +10:00
Bartosz PolaczykandBartosz Polaczyk 1d2a28490f Add custom lldinit for a scheme (#929)
* Add customLLDBInit

* Add changelog info to a valid bucket

* Update PR number

* Add fixture tests

Co-authored-by: Bartosz Polaczyk <bartoszp@spotify.com>
2020-08-12 16:13:47 +10:00
Yonas Kolb 20a99e5018 Add FileTypes for cross project file options (#914)
* move BuildPhase

* add fileTypes

* update changelog
2020-08-04 09:14:32 +10:00
Muhammad Muizzsuddin d68900e313 Fix app extension scheme generation (#899)
* Fix XCScheme generation for Extension

* Use schemeTarget
2020-07-26 22:17:32 +10:00
Jared Sorge 331c3da0ef Add Target option for copying frameworks when installing (#912)
* Add copy files on install option

* Add documentation

* Add tests

* Add to the target’s JSON if true

* Add changelog entry

* Add test for outputted pbxproj file
2020-07-26 22:15:42 +10:00
Brentley Jones fc58e084b9 Update XcodeProj to 7.13.0 (#908)
This has support for App Clips.
2020-07-15 00:53:18 +10:00
Khaos Tian 37e1f72531 Treat all directories with known UTI as file wrapper (#896)
* Only allow folder with unknown UTI

* Update fixture

* Use fileGroups instead of fixtures.

* Change log

* Add to the right place

* Rename title
2020-06-25 18:39:04 +10:00
Yonas Kolb 7da953a488 swift format 2020-06-17 18:12:34 +10:00
Nikita Kukushkin 86c9812582 Allow skipping compile source build phase for bundles (#878)
* Add `.bundle` to `canSkipCompileSourcesBuildPhase`

* Fix tests

* Update fixtures

* Update CHANGELOG.md
2020-06-05 18:54:48 +10:00
Joseph Colicchio 1f95a41b85 Compile xcmappingmodel files instead of copying them (#834)
* Compile xcmappingmodel files instead of copying them

* Add test for xcmappingmodel

* Update changelog

* Fix xcmappingmodel reference to avoid folder containing xml

* Fix xcmappingmodel contents to avoid test failure

* Tweak yaml to fix compiler flag on xcmappingmodel

avoid `-Werror` added to xcmappingmodel compiler flags, which was preventing compilation
2020-06-04 15:22:33 +10:00
Khaos Tian 474d8f6907 Bugfix: Ensure folder and wrapper directories are correctly set on generated project (#862)
Check for UTI type instead of hardcoded extensions.
2020-05-18 12:21:34 -05:00
Akio Yasui f25a8955ba Don't link transitive static carthage libraries (#853) 2020-05-02 12:18:12 -05:00
Ian Leitch f010771a30 Generate correct PBXTargetDependency for external targets. (#843) 2020-04-23 12:25:25 -05:00
Sam Kirchmeier aeb65969d4 Automatically include bundles in the Copy Bundle Resources build phase (#838) 2020-04-22 07:59:43 -05:00
Ian LeitchandYonas Kolb 7ff577911d Prefix static library target filenames with 'lib' to match Xcode. (#831)
* Prefix static library target filenames with 'lib' to match Xcode.

Given a target named 'MyTarget', Xcode automatically prefixes the filename with 'lib', resulting in the filename 'libMyTarget.a'.

* Update CHANGELOG.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2020-04-13 21:49:17 +10:00