π Check out the guidelines here
- Provide default build settings for unit and ui test targets tuist#501 by @kwridan
- Remove "Shell" Carthage dependency from project manifest as it's no longer used tuist#505 by @kwridan
- Update list of recognized file extensions tuist#500 by @dflems
- Update BuildSettingsProvider to include extension settings tuist#497 by @kwridan
- Remove the dependency with the Swift Package Manager tuist#499 by @elliottwilliams
- Make test plans deserialise correctly tuist#496 by @adamkhazi
- Make test plans optional https://github.com/tuist/XcodeProj/commit/c15034948a2a132bf559f14d3c6b4d1b73749663 by @pepibumur
- Replaced CircleCI with GitHub actions tuist#493 by @pepibumur
- Replace CircleCI with GitHub actions tuist#493 by @pepibumur
- Replace Shell with the SPM's Process utility class tuist#492 by @pepibumur
- Added support for Xcode 11 test plans tuist#491 by @maniramezan
- Add remote Swift packages to the Frameworks build phase tuist#487 by @kwridan
- System library added to a group has empty path tuist#488 by @damirdavletov
- Fix Products group serialisation with temporary ids tuist#489 by @damirdavletov
- Add
onlyGenerateCoverageForSpecifiedTargetsparameter toTestActiontuist#473 by @kateinoigakukun - Added support for
PBXTargetDependency.producttuist#481 by @yonaskolb - Xcode 11 support.
- Update
BuildSettingProviderto returnLD_RUNPATH_SEARCH_PATHSasArray<String>tuist#463 by @marciniwanicki - Update
Project.swiftto make it compatible with tuist 0.17.0 tuist#469 by @marciniwanicki
- Adding support for adding local Swift packages tuist#468 by @fortmarek
- Adding additional
lastKnownFileTypes tuist#458 by @kwridan - Adding possibility to create variant group for referencing localized resources tuist#462 by @timbaev
###Β Fixed
- Duplication of packages tuist#470 by @fortmarek
- Breaking Change the UUID generation logic to generate ids with a length of 24 tuist#432 by @pepibumur.
- Breaking Renamed module from
xcodeprojtoXcodeProjtuist#398 by @pepibumur. - Add
overrideflag toPBXGroup.addFile(at:,sourceTree:,sourceRoot:)tuist#410 by @mrylmz - Rename some internal variables to have a more representative name tuist#415 by @pepibumur.
- Breaking Add
SWIFT_COMPILATION_MODEandCODE_SIGN_IDENTITYbuild settings, removeDEBUGflag for Release tuist#417 @dangthaison91 - Breaking Added throwing an error in case group path can't be resolved by @damirdavletov
- Breaking Added remote project support to PBXContainerItemProxy by @damirdavletov
- Breaking Add support for
RemoteRunnabletuist#400 by @pepibumur. - Breaking Swift 5 support tuist#397 by @pepibumur.
- Added
com.apple.product-type.application.watchapp2-containertoPBXProductType. tuist#441 by @leogdion. - Add BatchUpdater to quickly add files to the group tuist#388 by @CognitiveDisson.
WorkspaceSettings.autoCreateSchemesattribute tuist#399 by @pepibumur- Additional Swift 5 fixes: tuist#402 by @samisuteria
- Make build phase name public by @llinardos.
- Can access embed frameworks build phase for a target by @llinardos.
- Added
com.apple.product-type.framework.statictoPBXProductType. tuist#347 by @ileitch. - Can add a not existing file to a group tuist#418 by @llinardos.
- Support for Swift PM Packages tuist#439 tuist#444 by @pepibumur @yonaskolb.
LaunchAction.customLaunchCommandattribute tuist#451 by @pepibumur.XCBuildConfiguration.appendmethod tuist#450 by @pepibumur.
- Carthage integration tuist#416 by @pepibumur.
- Relative path is wrong when referencing file outside of project folder tuist#423 by @damirdavletov
- [crash] Fatal error: Duplicate values for key tuist#426 by @toshi0383
- Change PBXContainerItemProxy.remoteGlobalID attribute to support object references tuist#445 by @yonaskolb
- Dead lock in the
PBXObjects.deletemethod tuist#449 by @pepibumur
- OSLogs tuist#453 by @pepibumur.
- Breaking Make
PBXBuildPhase.filesoptional to match Xcode's behavior tuist#391 by @pepibumur.
- Add location variable to XCWorkspaceDataElement tuist#387 by @pepibumur.
- Fixed file full path performance issue tuist#372 by @CognitiveDisson.
- Diffing issues when writing the project tuist#391 by @pepibumur.
- Fix adding files to
PBXBuildPhasetuist#380 @danilsmakotin. - Improve project encoding performance tuist#371 by @CognitiveDisson.
- Project decoding performance issue tuist#365 by @CognitiveDisson.
- Fix PBXTarget extension methods tuist#367 by @danilsmakotin.
- Added
GPUFrameCaptureModeandGPUValidationModeoptions toLaunchActiontuist#368 by @schiewe. - Add Swiftformat tuist#375 by @pepibumur.
- Breaking Rename GPUFrameCaptureMode cases to start with a lowercase letter tuist#375 by @pepibumur.
- Fix linting issues tuist#375 by @pepibumur.
- Make Xcode.Supported.xcschemeFormatVersion public tuist#361 by @yonaskolb.
- Fix remote target dependency tuist#362 by @mxcl.
- Added
projReferenceFormattoPBXOutputSettingsto allow changing the output format of generated references.withPrefixAndSuffixwill give the legacy behaviourxcodewill generate 32 character references as XCode does. tuist#345 by @samskiter. - Danger tuist#357 by @pepibumur.
- Support for WorkspaceSettings tuist#359 by @pepibumur.
- Added
parallelizableandrandomExecutionOrderingattributes toXCScheme.TestableReferencetuist#340 by @alvarhansen.
- Fixed possible generated UUID conflicts tuist#342 by @yonaskolb.
- Fixed not working PBXFileElement.fullPath(sourceRoot:) method tuist#343 by @Vyeczorny.
- Carthage and CocoaPods support tuist#339 by @pepibumur.
- Improved writing performance tuist#336 tuist#337 tuist#338 by @yonaskolb.
- Replaced Swift Package Manager dependency with PathKit tuist#334 by @yonaskolb.
- Added ability to pass in a
PBXObjectinto thePBXProject.targetAttributesdictionary, which will be encoded into its UUID. Can be used forTestTargetIDtuist#333 by @yonaskolb.
- Changed
XCScheme.BuildableReferenceinit to makeblueprintaPBXObjectand added asetBlueprint(:)function tuist#320 by @yonaskolb. - Bump AEXML version to 4.3.3 tuist#310 by @pepibumur.
- Improves performance of object references tuist#332 by @yonaskolb.
- Prefix reference with object type acronym. eg.
PBXFileReferencebecomesFR_XXXXXXXXXXXXXXXXXtuist#332 by @yonaskolb. - Add
TEMPprefix to temporary unfixed reference values tuist#332 by @yonaskolb.
- Fixed written order of scheme attributes in Swift 4.2 tuist#325 and tuist#331 by @yonaskolb and @drekka
- Fixes
PBXProjectattributes not being set properly tuist#318 by @yonaskolb. - Fixed remoteGlobalID typo tuist#315 by @yonaskolb.
- Fixed
XCBuildConfiguration.buildConfigurationtype tuist#316 by @yonaskolb.
Note: Migration guidelines are included in the project README.
- Breaking Make
PBXObjectReferenceinternal tuist#300 by @pepibumur. - Breaking Make
PBXObjectsinternal tuist#300 by @pepibumur. - Breaking Move
PBXObjectshelpers toPBXProjtuist#300 by @pepibumur.
- Some tweaks to support Xcode 10 tuist#298 by @pepibumur.
- Breaking Change
PBXBuildFile.fileattribute to be of typePBXFileElementtuist#297 by @pepibumur.
- Add
PBXBuildPhase.add(file:)method that takes a file element and returns a build file tuist#297 by @pepibumur. - Add
PBXProj.rootObjectattribute tuist#297 by @pepibumur.
XCBuildConfiguration.baseConfigurationtype tuist#297 @pepibumur.
setAttributes,removeAttributesandattributestoPBXProjecttuist#295 by @pepibumur
- Breaking Change
blueprintIdentifiertype toPBXObjectReferencetuist#289 by @pepibumur
- Fix grammatical issues and add some convenient getters tuist#291 by @pepibumur
- Fix targets not getting the reference generated tuist#290 by @pepibumur
- Product references not being generated tuist#294 by @pepibumur
- Breaking Make
PBXProject.attributesinternal tuist#295 by @pepibumur
Nothing new since the release rc2.
- Breaking Rename
filesReferencestofileReferencestuist#271 by @pepibumur
- Xcode 10 inputFileListPaths and outputFileListPaths attributes tuist#271 by @pepibumur
- Split up
XCSchememodels and make them conform theEquatableprotocol tuist#273 by @pepibumur - Convenient methods to add and fetch build configurations tuist#283 by @pepibumur
.incextension to the header file extensions by @pepibumur
- Rename project to xcodeproj by @pepibumur.
- Drop Carthage and CocoaPods support by @pepibumur.
- Use Basic AbsolutePath, RelativePath and Process extensions by @pepibumur.
- Use
PBXObjectReferenceinstead ofStringto reference objects fromPBXProj.Objectsby @pepibumur. - Remove
ObjectReferenceby @pepibumur. - Update
PBXNativeTargetreference attributes to be of typePBXObjectReferenceby @pepibumur. - Add convenient methods to materialize objects references tuist#12 by @pepibumur.
- Rename some PBXProject attributes for consistency tuist#268 by @pepibumur.
- Add
addDependencymethod toPBXNativeTargetby @pepibumur. - Danger check that reports Swiftlint results tuist#257 by @pepibumur.
- Xcode constants by @pepibumur.
- Convenient API from objects by @pepibumur.
BuildSettingsProviderby @pepibumur.- Add
addDependencymethod toPBXNativeTargetby @pepibumur. - Method in
XCConfigurationListto get the build configurations objects @pepibumur. - Method to get the configuration list from any target tuist#10 by @pepibumur.
- Migration guidelines tuist#264 by @pepibumur.
- Deprecated elements by @pepibumur.
- Tests that test the conformance of
Equatableby @pepibumur.
- XCConfig parser strips the trailing semicolon from a configuration value tuist#250 by @briantkelley
fullPath(fileElement:reference:sourceRoot:)now returns the correct path for files that exist within a variant group tuist#255 by @ileitch
- Update Danger to warn if the PR title contains WIP tuist#259 by @pepibumur.
- Test coverage reports tuist#258 by @pepibumur
- CI pipeline runs also on a Linux environment tuist#249 by @pepibumur.
- Auto-generation of Equatable conformances using Sourcery tuist#189 @by pepibumur.
- Some updates to match the Xcode 9.3 project format tuist#247 by @LinusU
PBXNativeTarget.productInstallPath,PBXTargetDependency.nametuist#241 by @briantkelleyPBXContainerItemsuper class ofPBXBuildPhaseandPBXTargettuist#243 by @briantkelleyPBXFileElement.wrapsLinesproperty tuist#244 by @briantkelleyPBXFileReferencelanguageSpecificationIdentifierandplistStructureDefinitionIdentifierproperties tuist#244 by @briantkelley
- Support for
XCConfigproject-relative includes tuist#238 by @briantkelley - Migrated
PBXProject.projectRoottoPBXProject.projectRootstuist#242 by @briantkelley - Moved
PBXFileElement.includeInIndexandPBXGroup'susesTabs,indentWidth, andtabWidthproperties toPBXFileElementtuist#244 by @briantkelley PBXContainerItemsuper class ofPBXFileElementtuist#244 by @briantkelleyPBXVariantGroupandXCVersionGroupnow inherit fromPBXGrouptuist#244 by @briantkelley
PBXObject.isEqual(to:)overrides correctly call super tuist#239 by @briantkelleyPBXAggregateTargetdoes not writebuildRulestuist#241 by @briantkelley- Writes showEnvVarsInLog only when false tuist#240 by @briantkelley
- Writes
PBXProject.projectReferencesto the plist tuist#242 by @briantkelley - Comment generation for
PBXProject,PBXTarget, andPBXVariantGrouptuist#243 by @briantkelley fullPathnow returns the path for a file inside a group without a folder tuist#246 by @ileitch- Quotes strings containing a triple underscore or double forward slash in .pbxproj file tuist#245 by @briantkelley
- Added
tvOSandwatchOSCarthage support tuist#232 by @yonaskolb - Added support for scheme environment variables tuist#227 by @turekj
- Fixed PBXObject sublasses from checking Equatable properly tuist#224 by @yonaskolb
- Fix Carthage support tuist#226 by @ileitch
- Fix adding file reference to bundle and package files tuist#234 by @fuzza
- Fix adding PBXGroup without folder reference tuist#235 by @fuzza
- Fixed some more diffs from Xcode tuist#233 by @yonaskolb
- Carthage minimum Deployment Target tuist#229 by @olbrichj
- Added support for scheme pre-actions and post-actions tuist#217 by @kastiglione
- Breaking: Changed the return type of some helper functions that create or fetch PBXObjects to be
ObjectReference, which includes the reference as well as the object tuist#218 by @yonaskolb - Breaking: Changed some
Intproperties intoBoolorUInttuist#221 by @yonaskolb - Changed the writing of some properties to minimise diffs when opening projects in Xcode tuist#220 by @yonaskolb
- Fix Xcode 9.2 warning tuist#209 by @keith
- macOS CLI targets now have a nil extension, instead of an empty string tuist#208 by @keith
- Fix unnecessary quotations in CommentedString tuist#211 by @allu22
- Fixed xml files format not matching Xcode format, added some missing actions attributes. tuist#216 by @ilyapuchka
- Breaking:
XCWorkspace.Datarenamed toXCWorkspaceDataand removedreferences. - Improved README examples. tuist#212 by @ilyapuchka
- Added methods to get paths to workspace, project and breakpoints and shemes files, added public methods to write them separatery. tuist#215 by @ilyapuchka
- Added helper methods for adding source file to the project. tuist#213 by @ilyapuchka
- Deterministic reference generation tuist#185 by @pepibumur
- Breaking Change
Referenceableprotocol tuist#185 by @pepibumur. - Breaking Change Deprecated methods to access objects from the
PBXProj. Developers should use thePBXProj.objectsproperty instead. tuist#185 by @pepibumur.
- Breaking:
PBXSourceTreeno longer has raw values and gained an associated value case to support custom locations tuist#198 by @briantkelley
- Breaking: The
buildableProductRunnableproperty onXCScheme.LaunchActionandXCScheme.ProfileActionis now optional. Similarly,macroExpansiononXCScheme.TestActionis also optional. tuist#194 by @briantkelley - The
XCSchemeinitialization from an XML file has been relaxed, better matching Xcode's behavior. Default values will be used if the XML file is missing the relevant element or attribute. tuist#194 by @briantkelley
- If you were using objects getters in
PBXProjyou should use the getters inPBXProj.objectsinstead. - Objects don't include a
referenceproperty anymore. Objects associated references are the keys in the dictionary that contains them. - When objects are added to the
PBXProj.objectscollection a reference needs to be passed. The reference can be calculated using the functionPBXProj.objects.generateReferencethat generates a unique and deterministic reference based on the given object and identifier. - If you were using
buildableProductRunnableandmacroExpansionproperties fromXCSchemeactions they are now optionals.
- Optimised performance of object lookups tuist#191 by @kastiglione
- Add breakpoint
conditionparameter by @alexruperez. - Support Xcode Extension product type tuist#190 by @briantkelley
- Support for the legacy Build Carbon Resources build phase tuist#196 by @briantkelley
- Support for custom build rules by tuist#197 @briantkelley
- Optimised escaping of CommentedString tuist#195 by @kastiglione
- Optimised performance of object lookups tuist#191 by @kastiglione
- fixed PBXLegacyTarget write order tuist#199 by @kastiglione
- fixed comment generation of PBXBuildFiles without a name tuist#203 by @briantkelley
- fixed PBXReferenceTarget encoding in pbxproj file tuist#202 by @briantkelley
- Support more indentation options on PBXGroups tuist#168 by @bkase.
- Support
PBXLegacyTargettuist#171 by @bkase. - Breakpoint support through
XCBreakpointList. tuist#172 by @alexruperez - Add convenience method to find targets with a given name tuist#184 by @pepibumur.
- Danger plugin that fails earlier if files have been added/deleted and the Carthage project hasn't been regenerated afterwards tuist#187 by @pepibumur.
- Fix encoded line breaks in PBXFileReference tuist#177 by @yonaskolb
- PBXLegacyTarget support tuist#171 by @bkase
- Integration tests tuist#168 by @pepibumur
- More examples to the README tuist#116 by @pepibumur.
- Add adding / editing command line arguments for Launch, Test and Profile Actions in
XCScheme. tuist#167 by @rahul-malik - Test the contract with XcodeGen tuist#170 by @pepibumur
- Add
PBXProj.Objects.getFileElementtuist#175 by @yonaskolb
PBXGroupnot generating the comment properly for its children tuist#169 by @pepibumur.- Make
PBXFileElementa superclass forPBXFileReference,PBXGroup, andPBXVariantGrouptuist#173 by @gubikmic - Added
pathtoPBXVariantGroupinit tuist#174 by @yonaskolb
- Add
codeCoverageEnabledparameter toTestActiontuist#166 by @kastiglione - Make
finalclasses that are not extendible tuist#164 by @pepibumur.
- Fix
PBXProjectproductRefGroupcomment tuist#161 by @allu22 - Fix deprecation warnings for
PBXProjobjects usage tuist#162 by @rahul-malik
- Danger integration tuist#158 by @pepibumur
- Improve efficiency of looking up
PBXObject's fromPBXProjtuist#136 by @rahul-malik
PBXObjectobjects accessors https://github.com/xcodeswift/xcproj/pull/136/files#diff-f4369d9af58a6914f0e5cdf81ed18530R6 by @rahul-malik.
- Fix
PBXBuildFilewrongly defaulting the settings attribute when it was nil tuist#149 by @allu22 - Fix
PBXTargetgenerating the wrong comment for theproductReferenceproperty tuist#151 by @allu22. - Add missing
usesTabsproperty toPBXGrouptuist#147 by @allu22. - Fix generated comment for
PBXHeadersBuildPhaseby @allu22. - Fix wrong
BuidlSettings.swiftfile name tuist#146 by @allu22. - Fix
projectReferencestype tuist#135 by @solgar.
- Add
PBXSourceTree.developerDirtype https://github.com/xcodeswift/xcproj/commit/5504fcde00bc56cf6c240ecd7cc36c05296861f8 by @pepibumur.
- Fix
PBXShellScriptBuildPhasebug decodingshowEnvVarsInLoghttps://github.com/xcodeswift/xcproj/commit/521b4e62b70f5fc43a06d00c43916d4899138553 by @pepibumur. - Fix
PBXFileReferencebug decodinguseTabshttps://github.com/xcodeswift/xcproj/commit/c533987496959a3e32c0ddfe45a0f2db8d5daae0 by @pepibumur. - Fix
PBXFileReferencebug decodinglineEndinghttps://github.com/xcodeswift/xcproj/commit/8a2c94effbe94859a68d58e0c49d66156ba1eaea by @pepibumur.
- Build phase
buildActionMaskwrong default value tuist#131 by @pepibumur.
- It supports now SPM-generated projects tuist#124 by @pepibumur. Thanks @josefdolezal for the report.
- Project and workspace initializer that takes the path as a string tuist#123 by @pepibumur.
- Fix the decoding of the
PBXFileReference.fileEncodingproperty tuist#127 by @gubikmic. - Fix some wrong comments and typos tuist#126 by @gubikmic
- Breaking: Review optionality of attributes to align it with Xcode one tuist#107 by @pepibumur.
- Contributing, and code of conduct point to the organization ones by @pepibumur.
- New changelog format introduced by @pepibumur.
- Use the super init to decode reference in some objects tuist#110 by @yonaskolb
- Schemes being shared with an extension tuist#113 by @esttorhe.
- Contributors link in the README.md tuist#117 by @tapanprakasht.
- Add back the
BuildSettingstypelias removed by mistake tuist#109 by @pepibumur. - Fix a bug decoding the
PBXProject.projectRootproperty that should be decoded as an optional tuist#108 by @pepibumur.
- Remove dependency with Unbox and use the language coding/decoding features tuist#99 by @pepibumur and @artemnovichkov.
- Enable xcproj in Open Collective by @pepibumur.
- Support parsing XCVersionGroup objects tuist#96 by @pepibumur.
- Add iOS support to the
.podspectuist#92 by @pepibumur. - Fix comment for buildConfigurationList tuist#93 by @toshi0383.
- Update
PBXProjclasses property to be a dictionary tuist#94 by @toshi0383. - Fix comment in the
BuildPhaseobject tuist#95 by @toshi0383.
- Turn
PBXVariantGroupchildren property into an array tuist#88 by @pepibumur - Add
PBXReferenceProxyobject tuist#85 by @pepibumur - Migrate project to Swift 4 tuist#84 by @artemnovichkov
- Fix build phase script error undoer Xcode 9 tuist#81 by @kixswift
- Update shell build script phase input and output files to be array instead of set tuist#65 by @pepibumur
- Fix wrong comment in the shell script build phase tuist#67 by @ppeibumur
- Fix wron gcomment in
PBXSourcesBuildPhasefiles property tuist#68 by @pepibumur - Add
XCVersionGroupproject element used by Core Data models tuist#69 by @pepibumur - Update
XCConcigurationListbuild configurations to be an array tuist#70 by @pepibumur
- Update struct to classes and clean up API tuist#51 by @yonaskolb
- Fix and cleanup strings escaping tuist#48 by @yonaskolb
- Add
runOnlyForDeploymentPostprocessingtoPBXShellScriptBuildPhaseby @yonaskolb - Remove force unwrap for
XCSchemetuist#39 by @Shakarang
- Downgrade Swift Tools versions to 4.0 tuist#27 by @yonaskolb
- Make Scheme intializers public tuist#28 by @yonaskolb
- Change PBXGroup.children to be an array tuist#26 by @yonaskolb
- Make XcodeProj writable tuist#20 by @yonaskolb
- Write baseConfigurationReference tuist#24 by @yonaskolb
- Convert booleans to YES or NO tuist#23 by @yonaskolb
- Make more properties public tuist#19 by @yonaskolb
- Fix an issue with unescaped strings by @yonaskolb tuist#16
- Update Swift Tools Version to 4.0 https://github.com/xcodeswift/xcproj/commit/f0f5ffe58ce0d29bb986189abf6391c6552fd347
- Remove CryptoSwift dependency https://github.com/xcodeswift/xcproj/commit/f0f5ffe58ce0d29bb986189abf6391c6552fd347
- First version of the Swift library.
- It supports reading and parsing the following models: - xcodeproj. - xcworkspace. - pbxproj.
This version doesn't support writing yet