XcodeGen/CHANGELOG.md
2018-09-19 21:13:49 +10:00

28 KiB

Change Log

1.11.2

If XcodeGen is compiled with Swift 4.2, then UUID's in the generated project will not be deterministic. This will be fixed in an upcoming release with an update to xcodeproj 6.0

Fixed

  • Fixed release builds in Swift 4.2 404 @pepibumur
  • Fixed default settings for macOS unit-tests 387 @frankdilo
  • Fixed Copy Headers phase ordering for Xcode 10 401 @brentleyjones
  • Fixed generated schemes on aggregate targets 394 @vgorloff

Changed

  • Added en as default value for knownRegions 390 @Saik0s
  • Update PathKit, Spectre, Yams and xcodeproj dependencies

Commits

1.11.1

Fixed

  • Fixed FRAMEWORK_SEARCH_PATHS for framework dependency paths with spaces 382 @brentleyjones
  • Fixed aggregate targets not being found with transitivelyLinkDependencies 383 @brentleyjones

Commits

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