XcodeGen now retrieves UTI of a directory to know if it's a special directory such as Assets.xcassets/
. That means other normal directories with dots will not appear in Copy Bundle Resources
Build Phase any more.
- Ignore normal directory with dots 397 @toshi0383
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 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
- Added
en
as default value for knownRegions 390 @Saik0s - Update
PathKit
,Spectre
,Yams
andxcodeproj
dependencies
- Fixed
FRAMEWORK_SEARCH_PATHS
forframework
dependency paths with spaces 382 @brentleyjones - Fixed aggregate targets not being found with
transitivelyLinkDependencies
383 @brentleyjones
- Added
showEnvVars
to build scripts to disable printing the environment 351 @keith - Added
requiresObjCLinking
totarget
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
andrevealArchiveInOrganizer
toarchive
367 @sxua
- 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 onxccurrentversion
if available 364 @rpassis - XPC Services are now correctly copied 368 @brentley
- Fixed
.metal
files being added to resources 380 @vgorloff
- Improved linking for
static.library
targets 352 @brentleyjones - Changed default group sorting to be after files 356 @yonaskolb
- Moved
Frameworks
andProducts
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 forframework
dependencies 373 @brentleylibrary.static
targets haveSKIP_INSTALL
set toYES
358 @brentley- Copy files phases have descriptive names 360 @brentley
- Moved brew formula to homebrew core
- Added
CONTRIBUTING.md
- Fixed Mint installations finding
SettingPresets
338 @yonaskolb
- Set
transitivelyLinkDependencies
to false by default
- Fixed
transitivelyLinkDependencies
typo 332 @brentleyjones - Fixed framework target dependencies not being code signed by default 332 @yonaskolb
- Code sign all dependencies by default except target executables 332 @yonaskolb
- 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
- 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 withDependency.codeSign
324 @yonaskolb
- 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
- Scheme pre and post actions can now be added to
target.scheme
280 @yonaskolb - Individual files can now be added to
fileGroups
293 @yonaskolb
- 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
toProject
andProjectSpec.Options
toSpecOptions
281 @jerrymarino
- 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
- Added Project
defaultConfig
269 @keith - Added Target
attributes
276 @yonaskolb - Automatically set
DevelopmentTeam
andProvisioningStyle
withinTargetAttributes
if relevant build settings are defined 277 @yonaskolb
- Fixed default
LD_RUNPATH_SEARCH_PATHS
for app extensions 272 @LinusU
- 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
- Added support for scheme environment variables 239 254 259 @turekj @toshi0383
- Added
carthageExecutablePath
option 244 @akkyie - Added
parallelizeBuild
andbuildImplicitDependencies
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 Mint installation from reading setting presets 248 @yonaskolb
- Fixed setting
buildPhase
on afolder
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
- Added scheme pre-actions and post-actions 231 @kastiglione
- Added
options.disabledValidations
includingmissingConfigs
to disable project validation errors 220 @keith - Generate UI Test Target Attributes 221 @anreitersimon
- Filter out duplicate source files 217 @allu22
- Fixed how
lastKnownFileType
andexplicitFileType
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
- 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
- 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 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
- 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
- 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
- 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
andS
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
- refactoring
- more tests
- added release scripts
- 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
- 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
- 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
- setting presets only apply
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: YES
to applications - don't add carthage dependency to
copy-frameworks
script ifembed: false
- sort group children on APFS
- update to xcproj 0.3.0
- 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
- automatically set
TEST_TARGET_NAME
on UI test targets if one of the dependencies is an application target
- set
DYLIB_INSTALL_NAME_BASE
to@rpath
in framework target presets - fixed tvOS launch screen setting.
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME
is nowLaunchImage
nottvOS LaunchImage
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 autogeneratingPRODUCT_BUNDLE_IDENTIFIER
PR#67 - add
:REPLACE
syntax when merginginclude
PR#68 - add
mint
installation support
- 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
- set project version to Xcode 9 -
LastUpgradeVersion
attribute to0900
- set default Swift version to 4.0 -
SWIFT_VERSION
build setting to4.0
- fixed incorrect default build script shell path
- fixed install scripts
- fixed empty string in YAML not being parsed properly PR#50 by @antoniocasero
- updated to xcodeproj 0.1.2 PR#56
- BREAKING: changed target definitions from list to map PR#54 See Project Spec
- Ability to set PBXProject attributes PR#45
- 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
- Allow a project spec to include other project specs PR#44
- Changed default spec path to
project.yml
- Changed default project directory to the current directory instead of the spec file's directory
- Fix embedded framework dependencies
- Add
CODE_SIGN_IDENTITY[sdk=iphoneos*]
back to iOS targets - Fix build scripts with "" generating invalid projects PR#43
- 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 localized files not being added to a target's resources
- Renamed Setting Presets to Setting Groups
- Carthage group is now created under top level Frameworks group
- Homebrew support PR#16 by @pepibumur
- Added
runOnlyWhenInstalling
to build scripts PR#32 - Added
carthageBuildPath
option PR#34
- Fixed installations of XcodeGen not applying build setting presets for configs, products, and platforms, due to missing resources
- Upgraded to https://github.com/swift-xcode/xcodeproj 0.1.1 PR#33
- 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
- Updated xcodeproj to 0.0.9
- Fixed watch and messages apps not copying carthage dependencies
- Changed
Target.generatedSchemes
toTarget.scheme.configVariants
- Added Target build scripts with
Target.prebuildScripts
andTarget.postbuildScripts
PR#17 - Support for absolute paths in target sources, run script files, and config files
- Add validation for incorrect
Target.configFiles
- Fixed some project objects sometimes having duplicate ids
First official release