XcodeGen/CHANGELOG.md
2018-08-22 08:55:54 -05:00

27 KiB

Change Log

Master

Fixed

  • Fixed FRAMEWORK_SEARCH_PATHS for framework dependency paths with spaces 382 @brentleyjones

1.11.0

Added

  • Added showEnvVars to build scripts to disable printing the environment 351 @keith
  • Added requiresObjCLinking to target 354 @brentleyjones
  • Added targetTemplates 355 @yonaskolb
  • Added aggregateTargets 353 381 @yonaskolb
  • Added options.groupSortPosition 356 @yonaskolb
  • Added ability to specify copyFiles build phase for sources 345 @brentleyjones
  • Added ability to specify a minimumXcodeGenVersion 349 @brentleyjones
  • Added customArchiveName and revealArchiveInOrganizer to archive 367 @sxua

Fixed

  • Sort files using localizedStandardCompare 341 @rohitpal440
  • Use the latest xcdatamodel when sorted by version 341 @rohitpal440
  • Fixed compiler flags being set on non source files in mixed build phase target sources 347 @brentleyjones
  • Fixed options.xcodeVersion not being parsed 348 @brentleyjones
  • Fixed non-application targets using carthage copy-frameworks 361 @brentleyjones
  • Set xcdatamodel based on xccurrentversion if available 364 @rpassis
  • XPC Services are now correctly copied 368 @brentley
  • Fixed .metal files being added to resources 380 @vgorloff

Changed

  • Improved linking for static.library targets 352 @brentleyjones
  • Changed default group sorting to be after files 356 @yonaskolb
  • Moved Frameworks and Products top level groups to bottom 356 @yonaskolb
  • modulemap files are automatically copied to the products directory for static library targets 346 @brentleyjones
  • Public header files are automatically copied to the products directory for static library targets 365 @brentleyjones
  • Swift Objective-C Interface Header files are automatically copied to the products directory for static library targets 366 @brentleyjones
  • FRAMEWORK_SEARCH_PATHS are adjusted for framework dependencies 373 @brentley
  • library.static targets have SKIP_INSTALL set to YES 358 @brentley
  • Copy files phases have descriptive names 360 @brentley

Internal

  • Moved brew formula to homebrew core
  • Added CONTRIBUTING.md

Commits

1.10.3

Fixed

Commits

1.10.2

Changed

  • Set transitivelyLinkDependencies to false by default

Commits

1.10.1

Fixed

  • Fixed transitivelyLinkDependencies typo 332 @brentleyjones
  • Fixed framework target dependencies not being code signed by default 332 @yonaskolb

Changed

  • Code sign all dependencies by default except target executables 332 @yonaskolb

Commits

1.10.0

Added

  • Added build rule support 306 @yonaskolb
  • Added support for frameworks in sources 308 @keith
  • Added ability to automatically embed transient dependencies. Controlled with transitivelyLinkDependencies 327 @brentleyjones

Changed

  • Upgraded to Swift 4.1
  • Improved Carthage dependency lookup performance with many targets 298 @keith
  • By default don't CodeSignOnCopy target dependencies. This can still be controlled with Dependency.codeSign 324 @yonaskolb

Fixed

  • Fixed PBXBuildFile and PBXFileReference being incorrectly generated for Legacy targets 296 @sascha
  • Fixed required sources build phase not being generated if there are no sources 307 @yonaskolb
  • Fixed install script in binary release 303 @alvarhansen
  • Removed ENABLE_TESTABILITY from framework setting presets 299 @allu22
  • Fixed homebrew installation 297 @vhbit
  • cc files are now automatically recognized as source files 317 @maicki
  • Fixed commandLineArguments not parsing when they had dots in them 323 @yonaskolb
  • Fixed excluding directories that only have sub directories 326 @brentleyjones
  • Made PBXContainerItemProxy ID more deterministic
  • Fixed generated framework schemes from being executable 328 @brentleyjones

Commits

1.9.0

Added

  • Scheme pre and post actions can now be added to target.scheme 280 @yonaskolb
  • Individual files can now be added to fileGroups 293 @yonaskolb

Changed

  • Updated to xcproj 4.3.0 for Xcode 9.3 updates
  • Update default Xcode version to 9.3 including new settings 284 @LinusU
  • Breaking for ProjectSpec library users Changed ProjectSpec to Project and ProjectSpec.Options to SpecOptions 281 @jerrymarino

Fixed

  • Fixed manual build phase of none not being applied to folders 288 @yonaskolb
  • Quoted values now correctly get parsed as strings 282 @yonaskolb
  • Fixed adding a root source folder when createIntermediateGroups is on 291 @yonaskolb
  • Fixed Homebrew installations issues on some machines 289 @vhbit
  • Fixed files that are added as root sources from having invalid parent groups outside the project directory 293 @yonaskolb

Commits

1.8.0

Added

  • Added Project defaultConfig 269 @keith
  • Added Target attributes 276 @yonaskolb
  • Automatically set DevelopmentTeam and ProvisioningStyle within TargetAttributes if relevant build settings are defined 277 @yonaskolb

Fixed

  • Fixed default LD_RUNPATH_SEARCH_PATHS for app extensions 272 @LinusU

Internal

  • Make LegacyTarget init public 264 @jerrymarino
  • Upgrade to xcproj to 4.2.0, Yams to 0.6.0 and PathKit to 0.9.1 @yonaskolb

Commits

1.7.0

Added

  • Added support for scheme environment variables 239 254 259 @turekj @toshi0383
  • Added carthageExecutablePath option 244 @akkyie
  • Added parallelizeBuild and buildImplicitDependencies to Schemes 241 @rahul-malik @yonaskolb
  • Added support for Core Data xcdatamodeld files 249 @yonaskolb
  • Projects are now generated atomically by writing to a temporary directory first 250 @yonaskolb
  • Added script for adding precompiled binary to releases 246 @toshi0383
  • Added optional headerVisibilty to target source. This still defaults to public 252 @yonaskolb
  • Releases now include a pre-compiled binary and setting presets, including an install script

Fixed

  • Fixed Mint installation from reading setting presets 248 @yonaskolb
  • Fixed setting buildPhase on a folder source. This allows for a folder of header files 254 @toshi0383
  • Carthage dependencies are not automatically embedded into test targets 256 @yonaskolb
  • Carthage dependencies now respect the embed property 256 @yonaskolb
  • iMessage extensions now have proper setting presets in regards to app icon and runtime search paths 255 @yonaskolb
  • Excluded files are not added within .lproj directories 238 @toshi0383

Commits

1.6.0

Added

  • Added scheme pre-actions and post-actions 231 @kastiglione
  • Added options.disabledValidations including missingConfigs to disable project validation errors 220 @keith
  • Generate UI Test Target Attributes 221 @anreitersimon

Fixed

  • Filter out duplicate source files 217 @allu22
  • Fixed how lastKnownFileType and explicitFileType were generated across platforms 115 @toshi0383
  • Removed a few cases of project diffs when opening the project in Xcode @yonaskolb
  • Fixed Swift not being embedded by default in watch apps @yonaskolb

Changed

  • Change arrays to strings in setting presets 218 @allu22
  • Updated to xcproj 4.0 227

Commits

1.5.0

Added

  • added support for gatherCoverageData flag in target schemes 170 @alexruperez
  • added support for commandLineOptions in target schemes 172 @rahul-malik
  • added Project spec as a SwiftPM library for reuse in other projects 164 @soffes
  • added implicit option for framework dependencies 166 @sbarow
  • added --quite option to CLI 167 @soffes
  • can now print version with -v in addition to --version 174 @kastiglione
  • added support for legacy targets 175 @bkase
  • added support for indentation options 190 @bkase
  • added source excludes 135 161 190 @peymankh @
  • added options.xcodeVersion 197 @yonaskolb @peymankh
  • add test targets to Scheme 195 @vhbit
  • add option to make a source file optional incase it will be generated later 200 @vhbit
  • finalize Scheme spec 201 @yonaskolb
  • added buildPhase setting to target source for overriding the guessed build phase of files 206 @yonaskolb
  • added deploymentTarget setting to project and target 205 @yonaskolb

Changed

  • huge performance improvements when writing the project file due to changes in xcproj
  • updated dependencies
  • minor logging changes
  • updated Project Spec documentation
  • scan for Info.plist lazely 194 @kastiglione
  • change setting presets so that icon settings only get applied to application targets 204 @yonaskolb
  • changed scheme build targets format 203 @yonaskolb
  • when specifying a --spec argument, the default for the --project path is now the directory containing the spec 211 @yonaskolb

Fixed

  • fixed shell scripts escaping quotes twice 186 @allu22
  • fixed createIntermediateGroups when using a relative spec path 184 @kastiglione
  • fixed command line arguments for test and profile from being overridden 199 @vhbit
  • fixed files deep within a hierarchy having the path for a name
  • fixed source files from being duplicated if referenced with different casing 212 @yonaskolb
  • fixed target product name not being written. Fixes integration with R.swift 213 @yonaskolb

Commits

1.4.0

Added

  • added --version flag 112 @mironal
  • added support for adding individual file sources 106 133 142 139 @bkase
  • added source compiler flag support 121 @bkase
  • added ProjectSpec.options.createIntermediateGroups 108 @bkase
  • added better json loading support 127 @rahul-malik
  • added source name for customizing names of source directories and file 146 @yonaskolb
  • added folder reference source support via a new type property 151 @yonaskolb
  • added ProjectSpec.options.developmentLanguage 155 @yonaskolb

Changed

  • updated to xcproj 1.2.0 113 @yonaskolb
  • build settings from presets will be removed if they are provided in xcconfig files 77 @toshi0383
  • all files and groups are sorted by type and then alphabetically 144 @yonaskolb
  • target sources can now have an expanded form 119 @yonaskolb
  • empty build phases are now not generated 149 @yonaskolb
  • make UUIDs more deterministic 154 @yonaskolb

Fixed

  • only add headers to frameworks and libraries 118 @ryohey
  • fixed localized files with the same name 126 @ryohey
  • fix intermediate sources 144 @yonaskolb
  • fix cyclical target dependencies not working 147 @yonaskolb
  • fix directory bundles not being added properly when referenced directly 148 @yonaskolb
  • made mm, c and S file be parsed as source files 120 125 138 @bkase @enmiller
  • fix the generation of localized variant groups if there is no Base.lproj 157 @ryohey
  • all localizations found are added to a projects known regions 157 @ryohey

Internal

  • refactoring
  • more tests
  • added release scripts

Commits

1.3.0

Added

  • generate output files for Carthage copy-frameworks script 84 @mironal
  • added options.settingPreset to choose which setting presets get applied 100 @yonaskolb
  • added link option for target dependencies 109 @keith

Changed

  • updated to xcproj 0.4.1 85 @enmiller
  • don't copy base settings if config type has been left out 100 @yonaskolb
  • generate localised files under a single variant group 70 @ryohey
  • don't apply common project settings to configs with no type 100 @yonaskolb
  • config references in settings can now be partially matched and are case insensitive 111 @yonaskolb
  • other small internal changes @yonaskolb

Fixed

  • embed Carthage frameworks for macOS 82 @toshi0383
  • fixed copying of watchOS app resources 96 @keith
  • automatically ignore more file types for a target's sources (entitlements, gpx, apns) 94 @keith
  • change make build to a PHONY task 98 @keith
  • allow copying of resource files from dependant targets 95 @keith
  • fixed library linking 93 @keith
  • fixed duplicate carthage file references 107 @yonaskolb
  • an error is now shown if you try and generate a target scheme and don't have debug and release builds @yonaskolb

Commits

1.2.4

Fixed

  • setting presets only apply ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: YES to applications
  • don't add carthage dependency to copy-frameworks script if embed: false
  • sort group children on APFS

Changed

  • update to xcproj 0.3.0

Commits

1.2.3

Fixed

  • Fixed wrong carthage directory name reference for macOS 74 @toshi0383
  • Removed unnecessary carthage copy-frameworks for macOS app target 76 @toshi0383
  • Added some missing default settings for framework targets. SKIP_INSTALL: YES fixes archiving
  • Filter out nulls from setting presets if specifying an empty string

Commits

1.2.2

Added

  • automatically set TEST_TARGET_NAME on UI test targets if one of the dependencies is an application target

Fixed

  • set DYLIB_INSTALL_NAME_BASE to @rpath in framework target presets
  • fixed tvOS launch screen setting. ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME is now LaunchImage not tvOS LaunchImage

Commits

1.2.0

Added

  • include now supports a single string as well as a list
  • add support setting xcconfig files on a project with configFiles PR#64
  • add fileGroups to project spec for adding groups of files that aren't target source files PR#64
  • better output (more info, emoji, colors)
  • add options.bundleIdPrefix for autogenerating PRODUCT_BUNDLE_IDENTIFIER PR#67
  • add :REPLACE syntax when merging include PR#68
  • add mint installation support

Fixed

  • fixed homebrew installation
  • fixed target xcconfig files not working via configFiles PR#64
  • look for INFOPLIST_FILE setting in project and xcconfig files before adding it automatically. It was just looking in target settings before PR#64
  • exit with error on failure

Commits

1.1.0

Changed

  • set project version to Xcode 9 - LastUpgradeVersion attribute to 0900
  • set default Swift version to 4.0 - SWIFT_VERSION build setting to 4.0

Commits

1.0.1

Fixed

  • fixed incorrect default build script shell path
  • fixed install scripts

Commits

1.0.0

Added

  • Swift 4 support PR#52
  • Support for C and C++ files PR#48 by @antoniocasero
  • Xcode 9 default settings

Fixed

  • fixed empty string in YAML not being parsed properly PR#50 by @antoniocasero

Changed

  • updated to xcodeproj 0.1.2 PR#56
  • BREAKING: changed target definitions from list to map PR#54 See Project Spec

Commits

0.6.1

Added

  • Ability to set PBXProject attributes PR#45

Changed

  • Don't bother linking target frameworks for target dependencies.
  • Move code signing default settings from all iOS targets to iOS application targets, via Product + Platform setting preset files PR#46

Commits

0.6.0

Added

  • Allow a project spec to include other project specs PR#44

Changed

  • Changed default spec path to project.yml
  • Changed default project directory to the current directory instead of the spec file's directory

Commits

0.5.1

Fixed

  • Fix embedded framework dependencies
  • Add CODE_SIGN_IDENTITY[sdk=iphoneos*] back to iOS targets
  • Fix build scripts with "" generating invalid projects PR#43

Commits

0.5.0

Added

  • Added multi platform targets PR#35
  • Automatically generate platform specific FRAMEWORK_SEARCH_PATHS for Carthage dependencies PR#38
  • Automatically find Info.plist and set INFOPLIST_FILE build setting if it doesn't exist on a target PR#40
  • Add options for controlling embedding of dependencies PR#37

Fixed

  • Fixed localized files not being added to a target's resources

Changed

  • Renamed Setting Presets to Setting Groups
  • Carthage group is now created under top level Frameworks group

Commits

0.4.0

Added
  • Homebrew support PR#16 by @pepibumur
  • Added runOnlyWhenInstalling to build scripts PR#32
  • Added carthageBuildPath option PR#34

Fixed

  • Fixed installations of XcodeGen not applying build setting presets for configs, products, and platforms, due to missing resources

Changed

Commits

0.3.0 - Extensions and Scheme Tests

Added

  • Support for app extension dependencies, using the same target: MyExtension syntax PR#19
  • Added test targets to generated target schemes via Target.scheme.testTargets PR#21

Changed

  • Updated xcodeproj to 0.0.9

Fixed

  • Fixed watch and messages apps not copying carthage dependencies

Breaking changes

  • Changed Target.generatedSchemes to Target.scheme.configVariants

Commits

0.2.0 - Build scripts

Added

  • Added Target build scripts with Target.prebuildScripts and Target.postbuildScripts PR#17
  • Support for absolute paths in target sources, run script files, and config files
  • Add validation for incorrect Target.configFiles

Fixed

  • Fixed some project objects sometimes having duplicate ids

Commits

0.1.0

First official release