-
Use
test_target_type?when adding testable reference
Dimitris Koutsogiorgas #487 -
Add test reference to xcscheme if target is of type test
Dimitris Koutsogiorgas #485 -
Make build settings parsing optionally take into account any associated xcconfig files.
Renzo Crisóstomo #180
- Do not crash when there are no
BuildActionEntriesin a scheme.
Danielle Tomlinson #486
-
ui_test_bundleproduct are treated as xctest bundles.
Rajinder Ramgarhia #467 -
Remove the dependency upon
activesupport.
Samuel Giddins
- None.
-
Updated Common Build Settings with Xcode 8.3.
Louis D'hauwe #474 -
Updated Common Build Settings with Xcode 8.2.1.
Louis D'hauwe #468 -
Return file references when adding system frameworks to a target.
Keith Smiley #466 -
Add more Xcode file type references by file extension.
Keith Smiley #465
- Reference proxy display name always returns "ReferenceProxy".
Behavior corrected to return the name or path of the reference.
Barak Weiss #472
- Better error message when a target_dependency is invalid.
Dimitris Koutsogiorgas #448
-
Require 'colored' in xcodeproj.rb
Dimitris Koutsogiorgas #374 -
Allow initializing an Xcode project without the
classesattribute.
Samuel Giddins #446
- None.
- None.
- Use Nanaimo for native ruby ASCII plist parsing and serialization.
Removes the dependency on Xcode, FFI, and macOS.
Samuel Giddins
- None.
- None.
-
Fix regression resulting in projects existing product ref groups being altered
Rashin Arab #429 -
Fixed handling of xcdatamodeld packages in subfolders.
Simon Seyer #427
- None.
- Cover more cases of the Dir.chdir breakages.
Danielle Tomlinson #421
- None.
- Bump last known object version to support Xcode 8.0.
Boris Bügling #412 #414
-
Add new Messages application product types to constants.
Ben Asher #400 -
Add support for identify the host of an embedded target, when the embedded target belongs to a sub-project
Ben Asher #396
- None.
-
Expand
Projecthelpers for finding a target's extension targets and their hosts to include all embedded targets
Ben Asher #385 -
Add helpers to
Projectfor finding an extension target's host targets and a host target's extension targets.
Ben Asher #382 -
Add accessors for working with skipped tests inside TestAction in
.xcschemefiles.
Eduard Panasiuk #380 #383 -
Add new Messages extension product types to constants.
Boris Bügling #390 -
Fix plist serialization with Xcode 8 beta 1.
Boris Bügling #389
- None.
- Add test target and extension target helpers to
PBXNativeTarget.
Samuel Giddins
- None.
- Support for UI test bundles.
Boris Bügling #372
- None.
- Update constants for Xcode 7.3.
Samuel Giddins #370
- Support initializing a workspace that is missing a
contents.xcworkspacedir.
Roger Hu CocoaPods#4998
- None.
- None.
- Add support for
outputFilesCompilerFlagsin a customPBXBuildRule.
Samuel Giddins #362
- Improve the error when attempting to get the absolute path for a workspace
file reference of
developertype.
Samuel Giddins CocoaPods#5107
-
Fix ASCII .xcodeproj serialization with Xcode 7.3.
Boris Bügling #356 -
Ensure that new targets have the right build settings for custom build configurations.
Samuel Giddins #354
- Depend upon CLAide 1.0.
Samuel Giddins
-
Add accessors for working with Environment Variables in
.xcschemefiles.
Justin Martin #326 -
Add method to create new variant groups (groups for localized versions of the same file).
Tim Bodeit #315 -
Added target type for TV application extensions.
Boris Bügling #318 -
Added .hxx to the list of recognized header file extensions.
Jason Vasquez #320 -
Added basic
Xcodeproj::WorkspaceAPIs to support groups.
David Parton #322 -
Added a helper to set the deployment target on a target based on its platform.
Samuel Giddins -
Added support for projects tracking if they have been modified.
Samuel Giddins #202 -
The plist serializer can now be switched to different implementations, which will get autoloaded on-demand.
Samuel Giddins -
Simply requiring
xcodeprojon a ruby installation without thefiddlegem will not cause an exception -- that exception has been delayed until actually attempting to serialize / load a plist file.
Samuel Giddins
-
Avoid duplicating settings with multiple values in common when merging.
Samuel Giddins CocoaPods#3652 -
Avoid duplicating settings with common prefixes when merging.
Samuel Giddins -
Escape XML entities in project names when writing workspace.
Caesar Wirth CocoaPods#4446 -
Serialized configs will now have a trailing newline appended.
Samuel Giddins
- Silence
dyldwarnings appearing on OS X 10.11.
Boris Bügling #312
- Handle non-string values when serializing an XCConfig.
Samuel Giddins CocoaPods#4291
-
Add
tvosas a new platform.
Boris Bügling Xcodeproj#301 -
Allow accessing the new Xcode 7's Clang code coverage setting on XCSchemes ("Gather Code Coverage" checkbox).
Olivier Halligon #307 -
Adds
Xcodeproj::XCScheme#save!to save in place when theXCSchemeobject was initialized from an existing file.
Olivier Halligon #308
-
Allow opening and saving projects that have circular target dependencies.
Samuel Giddins CocoaPods#4229 -
Fix the generation of deterministic UUIDs for
.xcdatamodeldbundles.
Samuel Giddins CocoaPods#4187
- Cache some calculations in deterministic UUID generation.
Samuel Giddins
- This release fixes a file permissions error when using the RubyGem.
Samuel Giddins
-
Added the ability to load an existing
.xcschemefile and manipulate it usingXcodeproj::XCScheme.
Olivier Halligon #288 -
Sorting is now done in a case-insensitive manner.
Emma Koszinowski CocoaPods#3684 -
Trailing whitespace is stripped when serializing XCConfig files.
Samuel Giddins -
XCConfig values that are only
$(inherited)will be omitted during serialization.
Samuel Giddins
-
Fix a crash when calling
xcodeproj config-dump.
Samuel Giddins -
Reduces the number of cases un which deterministic UUIDs would yield duplicates. Downgraded duplicate generated UUIDs to a warning from an exception.
Samuel Giddins CocoaPods#3823 CocoaPods#3850
- Fix a crash when using the
xcodeprojCLI.
Samuel Giddins
- Vastly speed up deterministic UUID generation for large projects.
Samuel Giddins
- Allow transforming a project's UUIDs into predictable replacements.
Samuel Giddins #175
-
Allow
xcodeproj showto accept--no-coloras an option without crashing.
Samuel Giddins #267 -
Actually fix crashing when using Xcode 7 betas 1 & 2.
Samuel Giddins #278
-
Ensure that duplicate resources or source files aren't added to a target.
Samuel Giddins -
Support for native watch app targets.
Boris Bügling Xcodeproj#272 -
Update default build and scheme settings for Xcode 7.0 beta 1/2.
Marius Rackwitz Boris Bügling Xcodeproj#271
-
Fix the help output for
xcodeproj config-dump.
Samuel Giddins #274 -
Add support for project serialization with Xcode 7 Beta 2.
Samuel Giddins Boris Bügling #278 CocoaPods#3723
- Actually fix crashing when using Xcode 7 betas 1 & 2.
Samuel Giddins #278
Constants: Adds support for Command Line Tool as a product type.
Nick Jordan Xcodeproj#268
- Support for Xcode 6.3 compatible projects.
Boris Bügling Xcodeproj#253
-
Return a list of project targets including only native targets by
native_targets.
Marc Boquet Marius Rackwitz Xcodeproj#256 -
ProjectHelper: Allow to create aggregate targets.
Marius Rackwitz Xcodeproj#260 -
ProjectHelper: Give optional parameter ofconfiguration_listandcommon_build_settingsthe default valuenil.
Marius Rackwitz Xcodeproj#260
-
Save xcconfig files also if only the includes where modified by fixing the equality method implementation.
Brian Partridge Xcodeproj#255 -
Use
xcode-select --print-pathto be compatible with OS X 10.8.
Boris Bügling CocoaPods#3387
- Do not apply
fix_encodingworkaround when writing ASCII plists.
Boris Bügling CocoaPods#3298
ProjectHelper: Allow to specify the primary language of the target.
Marius Rackwitz Xcodeproj#244
- Depend on pathname so components such as PlistHelper can be used directly.
Vincent Isambart Kyle Fuller #243
-
Use the
DVTFoundation.frameworkof Xcode to serialize projects as ASCII plists. This makes the optional installation ofxcprojunnecessary to retain the project file format.
Boris Bügling Xcodeproj#199 Xcodeproj#203 -
PlistHelper: Add support for plist files with numbers (real,integer).
Vincent Isambart
-
Use the correct value for
COPY_PHASE_STRIPwhen creating build configurations.
Marius Rackwitz #3062 -
handle .H header files as headers and remove from the compile sources build phase.
banjun Xcodeproj#239
- Include common build settings on custom build configurations.
Kyle Fuller
-
ProjectThenew_targetmethod now creates build configurations corresponding to all configurations of the project, not just Debug and Release.
Boris Bügling Xcodeproj#228 CocoaPods#3055 -
Use
#subinstead of#gsubto remove spaces near first=when generating scheme files.
Almas Sapargali Xcodeproj#225
ConstantsThe build settings match now those from Xcode 6.1.
Marius Rackwitz Kyle Fuller Xcodeproj#166
-
ProjectHelperThe::common_build_settingsmethod supports now a new parameterlanguageto select the language used in the target. Acceptable options are either:objcor:swift.
Marius Rackwitz Xcodeproj#166 -
ProjectHelperSupports to create framework targets for iOS & OSX with the correct build settings.
Marius Rackwitz Xcodeproj#166 -
CommandsXcodeproj CLI has a new commandconfig-dump, which allows to read the build settings from all configurations of all targets of a given Xcode project and serialize them to .xcconfig files.
Marius Rackwitz Xcodeproj#166
RakefileBrings a set of new tasks to interactively generate fixture targets for all target configurations supported by Xcode to update the xcconfig fixtures used for the new specs, which check the build settings constants.
Marius Rackwitz Xcodeproj#166
FileReferenceFixes an issue that caused project names containing",',&,<or>to produce a workspace that Xcode could not open.
Hugo Tunius CocoaPods#2807
-
ProjectMake#==a fast shallow comparison method, which operates only on its root object UUID and its path on disk. For full data comparisons, use the#eql?method instead.
Eloy Durán Xcodeproj#216 -
NativeTargetMake adding a target dependency O(1) constant speed.
Eloy Durán Xcodeproj#216 -
ObjectCache an object's plist name, which is used very often during project generation.
Eloy Durán Xcodeproj#216
CoreFoundationHopefully fix a Ruby constant lookup issue. We have been unable to reproduce this, but since more than one person has reported it, we're including this fix in the hope it fixes this esoteric issue.
Eloy Durán CocoaPods#2632 CocoaPods#2739
- Support for Ruby < 2.0.0 has been dropped. Xcodeproj now depends on
Ruby 2.0.0 or greater.
Kyle Fuller
-
Project: Recognize merge conflicts and raise a helpful error.
Marius Rackwitz Xcodeproj#192 -
PBXContainerItemProxy: Allow access to the proxied object.
Marius Rackwitz Xcodeproj#178
-
PBXCopyFilesBuildPhase: Add a convenience methodsymbol_dst_subfolder_specto set the destination subfolder specification by a symbol.
Marius Rackwitz Xcodeproj#187 -
PBXNativeTarget: Return newly created build files byadd_file_referencesand yield each one to allow direct modification of its settigs.
Marius Rackwitz Xcodeproj#187
-
PBXNativeTarget: Fixed the creation of target dependencies, which refer to subprojects.
Marius Rackwitz Xcodeproj#178 -
PBXReferenceProxy: Added the missing attribute name, which could appear when external frameworks are referenced. Marius Rackwitz Xcodeproj#189
-
PlistHelper: Add support for Ruby 1.9.3's implementation ofFiddle.
Eloy Durán Xcodeproj#206 -
Stop re-writing config files if they have not changed.
Kyle Fuller Boris Bügling
PlistHelper: Drop usage of theCFPropertyListgem andplutiland replace it with a version that uses the nativeCFPropertyListAPIs from the OS XCoreFoundationframework, like the previous C extension did. Except this time we use Ruby's Fiddle API (MRI >= 1.9.3) to interface with it instead of the need to compile a C extension.
This release still includes a prebuilt version of the C extension for Ruby 1.8.7 support (OS X 10.8.x), but this will soon be dropped completely.
Eloy Durán CocoaPods#2483 Xcodeproj#198 Xcodeproj#200
PlistHelper: Only try to useplutilif it's in the exact location where we expect it to be on OS X, instead of relying on the user's$PATH. Eloy Durán CocoaPods#2502
Config: Remove space after -l flag in other linker flags.
Fabio Pelosin
-
PlistHelper: Now theplutiltool is used to save the files if available to produce output consistent with Xcode.
Fabio Pelosin -
Project: Added support for adding file references to sub-projects.
Fabio Pelosin -
Config: The config class now properly handles quotes inOTHER_LDFLAGS.
Fabio Pelosin -
PBXGroup: Now file references to Xcode projects are properly handled and setup. Also theObjectDictionaryclass has been improved and now can be used to edit the attributes using it. Fabio Pelosin Xcodeproj#172 -
Constants: Support XCTest as product type and don't fail forPBXNativeTarget#symbol_typeon unknown product types.
Marius Rackwitz Xcodeproj#176 -
Workspace: Now a template is used to produce the same formatting of Xcode.
Fabio Pelosin -
Project: Improved validation of object attributes.
Fabio Pelosin -
Project: Completed support for dictionaries.
Fabio Pelosin -
Project: Added possibility to disablexcprojvia an environment variable.
Fabio Pelosin
Project: Fixed reference counting issue when deleting sub-projects.
-
[PlistHelper] The native extension has been removed in favour of the usage of the
plutiltool to read ASCII property list files.
Fabio Pelosin Xcodeproj#168 Xcodeproj#167 -
[PBXFileReference] If a file reference represents an external Xcode project and is removed from the project then all items related to the external project will also be removed.
JP Simard Eloy Durán Xcodeproj#158 Xcodeproj#161
- [Workspace] Fixed adding a project to a workspace. Alessandro Orrù Xcodeproj#155
- [Workspace] Added support for file references.
Kyle Fuller Fabio Pelosin Xcodeproj#105
- [Constants] Added support for .ipp files as headers.
Samuel E. Giddins
- [Xcodeproj::Project#reference_for_path] Support for string parameter.
jlj
- [Constants] Disable errors on warnings for default build settings
Fabio Pelosin
- [Extension] Fixed build on OS X 10.9's system Ruby (2.0.0). Eloy Durán
- [Constants] Temporarily reverting the changes to
OTHER_LDFLAGSas the were creating issues in CocoaPods.
Fabio Pelosin
- [Project] Now the provided path is always expanded on initialization.
Gordon Fontenot #121
-
[Constants] Bumped last know SDK versions.
Fabio Pelosin #141 -
[Constants] Removed empty
OTHER_LDFLAGSsetting to match Xcode's behaviour.
Gordon Fontenot -
[Constants] Bumped last known Xcode version to
5.1.
Romans Karpelcevs #138
- [Extension] Fixed intermittent
Xcodeproj::PlistHelper.write_plisterror.
Eloy Durán
- Add support for absolute, group and container project references in workspaces
Kyle Fuller #118
-
[Gem] On MRI 1.8.7 /dev/tty is considered writable when not configured, leading to an exception when ran in an environment without a TTY.
Eloy Durán #111 #112 -
[Gem] Ensure rake is installed.
Johannes Würbach #110 -
[bin] Ensure the version file is loaded before trying to print it.
Eloy Durán #107
- [Scheme] Generate correct ReferencedContainer attribute when the Xcode project
has a non-empty
projectDirPath.
Per Eckerdal #102
-
[Gem] Provide prebuilt binary versions of the C extension for the stock Ruby versions on both OS X 10.8 (MRI 1.8.7) and 10.9 (MRI 2.0.0). Due to the ABI of MRI’s C ext API not always being consistent, these will not install on Ruby versions you have installed yourself. To override the default behaviour you can use the
XCODEPROJ_BUILDenvironment variable. Set it to1to always build the C extension or to0to never build the C extension.
Eloy Durán #88 -
[Scheme] Add support for aggregate targets to
#add_build_target.
Per Eckerdal #102 -
[PBXNativeTarget] Add support for subproject targets in
#add_dependency.
Per Eckerdal #101 -
[Project] Add
#reference_for_pathfor retrieving a file reference for a given absolute path.
Per Eckerdal #101
- Fix
Unable to read data from Model.xcdatamodeld/.xccurrentversionwhen there are more Data model versions.
Pim Snel
-
[AbstractTarget] Added default value for
default_configuration_nameattribute.
Fabio Pelosin -
[XCConfigurationList]
common_resolved_build_settingwill now ignore nil values. This is an heuristic which might not closely match Xcode behaviour. This is done because some information, like the SDK, is usually considered at the target level but it might actually differ in the build configurations. For example nothing prevents a target to build with the iOS sdk in one configuration and with the OS X in another.
Fabio Pelosin CocoaPods/CocoaPods#1462
- [AbstractTarget] The
#sdkmethod now raises if the value is not the same across all the build configurations. This has been done to prevent clients from accidentally using arbitrary values.
Fabio Pelosin
-
[AbstractTarget] Added
#resolved_build_settingand#common_resolved_build_setting.
Fabio Pelosin -
[XCConfigurationList] Added
#get_settingand#set_setting.
Fabio Pelosin -
[Project] Added
#build_configuration_list.
Fabio Pelosin
-
[PBXGroup]
#new_static_libraryhas been replaced by the more versatile#new_product_ref_for_target.
Fabio Pelosin -
[XCScheme] Overhauled interface to support multiple targets.
Jason Prado #95 -
[PBXGroup] renamed
#recursively_sort_by_typeto#sort_recursively_by_type. Fabio Pelosin
-
[PBXNativeTarget]
#add_system_frameworknow adds the system frameworks relative to the developer directory. Xcode behaviour is following: if the target has the same SDK of the project it adds the reference relative to the SDK root otherwise the reference is added relative to the Developer directory. This can create confusion or duplication of the references of frameworks linked by iOS and OS X targets. For this reason the new Xcodeproj behaviour is to add the frameworks in a subgroup according to the platform. The method will also honor the SDK version of the target if available (otherwise the last known version is used). Fabio Pelosin -
[Project] The project can now recreate it schemes from scratch and optionally hide them.
Fabio Pelosin -
Added support for booleans in the C extension which handles Property list files.
Fabio Pelosin -
Improvements to the generation of new targets.
Fabio Pelosin -
[Project] Added possibility to specify the position of groups while sorting. Fabio Pelosin
-
[PBXGroup] Now defaults to sorting by name.
Fabio Pelosin -
[XCScheme] The string representation of schemes now closely matches Xcode behaviour.
Fabio Pelosin -
[PBXGroup, PBXFileReference] Added
#parents.
Fabio Pelosin -
[PBXGroup] Added
#recursive_children_groups.
Fabio Pelosin -
[AbstractTarget] Add #sdk_version.
Fabio Pelosin -
Added default build settings to new projects according to Xcode defaults.
Fabio Pelosin
- No longer allow
PBXTargetDependencyto sort recursively. When two targets depend on each other, this would lead to the two targets endlessly sorting each other and finally crashing with a stack overflow.
Eloy Durán CocoaPods#1384
-
Added support for Xcode 5.
-
The
ARCHSoption is not set anymore and will use Xcode’s defaults. This fixes the build and archive issue with the newarm64architecture. CocoaPods#1352 -
The default of the
ONLY_ACTIVE_ARCHsetting has changed toYESin theDebugconfiguration. This means that if this is a static library, the application that links the library in will have to make the same adjustment, or the build will fail. -
[Project]
#add_system_frameworkhas been removed in favor ofPBXNativeTarget#add_system_framework.
-
[Command] Added new subcommand
sort, to sort projects from the command line. This command is useful for sorting projects as well to easy comparison of existing projects. -
[Project::Object] Added
#sort. -
[Project] Added
#sort,#add_system_library. -
[Project::ObjectList] Added
#moveand#move_from. -
[PBXNativeTarget] Improve
#add_dependencyto avoid duplicates. -
[PBXNativeTarget] Added
#add_system_framework,#add_system_frameworks,#add_system_library,#add_system_libraries. -
[PBXFileReference, PBXGroup] Added
set_source_treeand#set_path. -
[PBXGroup] Added
find_file_by_path. -
[AbstractBuildPhase] Added
#file_display_names,#build_file, and#include.
-
[Command] Fixed opening existing projects.
-
[GroupableHelper] Improved handling of ambiguous parents.
-
Decode XML entities in project paths when reading workspace files. This prevents double-encoding the entities (for example,
&apos;) when writing the file. amolloy -
Fix C-ext memory leak by closing and releasing the CFWriteStream used to write projects when done. #93 jasonprado
- Build configurations are now deeply copied. CocoaPods/CocoaPods#1288,
-
To initialize a project a path is required even is the project is being initialized from scratch.
-
To open an existing project
Xcodeproj::Project.openshould be used in place ofXcodeproj::Project.new, which now is deprecated for that purpose. -
Project#save_ashas been renamed toProject#savewhich uses the path provided during initialization by default. -
The parameter to specify a subgroup of the helper methods to create file references and new groups (e.g.
#new_file,#group) has been deprecated. -
Removed
PBXGroup#new_xcdatamodel_group. -
[PBXFileReference]
#update_last_known_file_typehas been renamed to#set_last_known_file_type. Added#set_explicit_file_type. -
[PBXGroup] Renamed
#sort_by_type!to#sort_by_type. -
[Project]
#add_system_frameworknow adds the reference to the frameworks build phase of the target as well.
-
CoreData versioned models are now properly handled respecting the contents of the
.xccurrentversionfile.
CocoaPods/CocoaPods#1288, #83
Ashton-W -
[PBXGroup, PBXFileReference] Improved source tree handling in creation helpers. Now it is possible to specify the source tree which will be used to adjust the provided path as needed.
-
Added
PBXGroup#parent,PBXGroup#real_path,PBXFileReference#parent(replaces#group), andPBXFileReference#real_path. -
Xcodeproj will automatically utilize the xcproj command line tool if available in the path of the user to touch saved projects. This will result in projects serialized in the exact format used by Xcode.
-
[PBXGroup] Improved deletion.
-
[PBXGroup] Added
#recursively_sort_by_type. -
[PBXGroup, PBXFileReference] Added
#move. -
[AbstractTarget] Added
#add_build_configuration.
-
Frameworks are added using the last sdks version reported by the xcodebuild if the target links against the last SDK.
-
Improvements in the handling of file references to frameworks.
-
Improvements to the schemes logic.
-
Added support for resources bundle targets.
-
Project::Group#new_file will now create XCVersionGroup for xcdatamodeld file.
- The file type of the frameworks file references has be corrected.