-
Expand
Project
helpers for finding a target's extension targets and their hosts to include all embedded targets
Ben Asher #385 -
Add helpers to
Project
for 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
.xcscheme
files.
Eduard Panasiuk #380 #383 -
Add new Messages extension product types to constants.
Boris Bügling #390
- 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
outputFilesCompilerFlags
in a customPBXBuildRule
.
Samuel Giddins #362
- Improve the error when attempting to get the absolute path for a workspace
file reference of
developer
type.
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
.xcscheme
files.
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::Workspace
APIs 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
xcodeproj
on a ruby installation without thefiddle
gem 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
dyld
warnings appearing on OS X 10.11.
Boris Bügling #312
- Handle non-string values when serializing an XCConfig.
Samuel Giddins CocoaPods#4291
-
Add
tvos
as 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 theXCScheme
object 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
.xcdatamodeld
bundles.
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
.xcscheme
file 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
xcodeproj
CLI.
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 show
to accept--no-color
as 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_list
andcommon_build_settings
the 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-path
to be compatible with OS X 10.8.
Boris Bügling CocoaPods#3387
- Do not apply
fix_encoding
workaround 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.framework
of Xcode to serialize projects as ASCII plists. This makes the optional installation ofxcproj
unnecessary 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_STRIP
when 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
-
Project
Thenew_target
method now creates build configurations corresponding to all configurations of the project, not just Debug and Release.
Boris Bügling Xcodeproj#228 CocoaPods#3055 -
Use
#sub
instead of#gsub
to remove spaces near first=
when generating scheme files.
Almas Sapargali Xcodeproj#225
Constants
The build settings match now those from Xcode 6.1.
Marius Rackwitz Kyle Fuller Xcodeproj#166
-
ProjectHelper
The::common_build_settings
method supports now a new parameterlanguage
to select the language used in the target. Acceptable options are either:objc
or:swift
.
Marius Rackwitz Xcodeproj#166 -
ProjectHelper
Supports to create framework targets for iOS & OSX with the correct build settings.
Marius Rackwitz Xcodeproj#166 -
Commands
Xcodeproj 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
Rakefile
Brings 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
FileReference
Fixes an issue that caused project names containing"
,'
,&
,<
or>
to produce a workspace that Xcode could not open.
Hugo Tunius CocoaPods#2807
-
Project
Make#==
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 -
NativeTarget
Make adding a target dependency O(1) constant speed.
Eloy Durán Xcodeproj#216 -
Object
Cache an object's plist name, which is used very often during project generation.
Eloy Durán Xcodeproj#216
CoreFoundation
Hopefully 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_spec
to set the destination subfolder specification by a symbol.
Marius Rackwitz Xcodeproj#187 -
PBXNativeTarget
: Return newly created build files byadd_file_references
and 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 theCFPropertyList
gem andplutil
and replace it with a version that uses the nativeCFPropertyList
APIs from the OS XCoreFoundation
framework, 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 useplutil
if 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 theplutil
tool 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 theObjectDictionary
class 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_type
on 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 disablexcproj
via 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
plutil
tool 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_LDFLAGS
as 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_LDFLAGS
setting 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_plist
error.
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_BUILD
environment variable. Set it to1
to always build the C extension or to0
to 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_path
for retrieving a file reference for a given absolute path.
Per Eckerdal #101
- Fix
Unable to read data from Model.xcdatamodeld/.xccurrentversion
when there are more Data model versions.
Pim Snel
-
[AbstractTarget] Added default value for
default_configuration_name
attribute.
Fabio Pelosin -
[XCConfigurationList]
common_resolved_build_setting
will 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
#sdk
method 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_setting
and#common_resolved_build_setting
.
Fabio Pelosin -
[XCConfigurationList] Added
#get_setting
and#set_setting
.
Fabio Pelosin -
[Project] Added
#build_configuration_list
.
Fabio Pelosin
-
[PBXGroup]
#new_static_library
has 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_type
to#sort_recursively_by_type
. Fabio Pelosin
-
[PBXNativeTarget]
#add_system_framework
now 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
PBXTargetDependency
to 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
ARCHS
option is not set anymore and will use Xcode’s defaults. This fixes the build and archive issue with the newarm64
architecture. CocoaPods#1352 -
The default of the
ONLY_ACTIVE_ARCH
setting has changed toYES
in theDebug
configuration. 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_framework
has 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
#move
and#move_from
. -
[PBXNativeTarget] Improve
#add_dependency
to avoid duplicates. -
[PBXNativeTarget] Added
#add_system_framework
,#add_system_frameworks
,#add_system_library
,#add_system_libraries
. -
[PBXFileReference, PBXGroup] Added
set_source_tree
and#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.open
should be used in place ofXcodeproj::Project.new
, which now is deprecated for that purpose. -
Project#save_as
has been renamed toProject#save
which 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_type
has 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_framework
now 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
.xccurrentversion
file.
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.