Skip to content

Latest commit

 

History

History
1474 lines (947 loc) · 45.9 KB

CHANGELOG.md

File metadata and controls

1474 lines (947 loc) · 45.9 KB

Xcodeproj Changelog

1.5.9 (2018-05-15)

Enhancements
  • None.
Bug Fixes

1.5.8 (2018-05-09)

Enhancements
  • Update LAST_KNOWN_IOS_SDK to 11.3
    Piasy

  • Create new static library targets without linking against system frameworks, for new build system compatibility.
    Samuel Giddins

Bug Fixes
  • Fix add_build_configuration for PBXAggregateTarget
    Dimitris Koutsogiorgas #565

  • Fixed undefined method isa for nil:NilClass when deleting a Xcodeproj target. JanC #462

  • Fix parsing of build settings when a key and value are not seprated from the = by whitespace Daniel Petri #566

  • Serialize arrays in Xcode projects based upon the project's object version.
    Samuel Giddins

  • Warn when encountering unknown attributes instead of bailing out.
    theoriginalgri #535

1.5.7 (2018-03-22)

Enhancements
  • None.
Bug Fixes
  • Make Workspace.load_schemes load schemes in the workspace container
    loufranco #557

  • Fix expanding build settings when the current build setting is a string but the inherited value is an array.
    Samuel Giddins CocoaPods#7421

1.5.6 (2018-02-04)

Enhancements
  • None.
Bug Fixes
  • Disable Objective-C weak references by default for new targets whose deployment targets do not support them.
    Samuel Giddins #544

1.5.5 (2018-02-02)

Enhancements
  • Atomically write project.pbxproj files, so that Xcode will never see them in a half-written state.
    Samuel Giddins

  • Update default build settings for Xcode 9.3.
    Samuel Giddins

  • Allow to create a buildable reference to another project's target.
    Simon Seyer #543

Bug Fixes
  • Save .xcscheme files with double-quoted strings, consistent with Xcode.
    Samuel Giddins

  • [XCBuildConfiguration] Support environment variables in #resolve_build_setting
    Ruenzuo #510

  • Ensure --no-ansi disables output of escape sequences.
    Samuel Giddins #540

1.5.4 (2017-12-16)

Enhancements
  • Made it possible to configure a scheme to launch a Today extension
    Eldorado234 #520
Bug Fixes
  • Fixing the method recreate_user_scheme for targets other than type PBXNativeTarget.
    Yadir Hernandez #531

  • Verify container portal when checking dependency target membership.
    izaakschroeder #513

  • [XCBuildConfiguration] Fix infinite recursion in #resolve_build_setting
    Ruenzuo #511

  • Add .inl as a recognized header file ending
    bes #7283

1.5.3 (2017-10-24)

Enhancements
  • Allowed to simply save a scheme after it was saved with a path before
    Eldorado234 #519
Bug Fixes
  • [Config] Make #to_bash include import statements
    Ruenzuo #505

1.5.2 (2017-09-24)

Enhancements
  • Resolve variable substitution for xcconfig declared build settings Ruenzuo #501
Bug Fixes
  • Don’t share build settings between resources bundle configurations
    jmesmith #502

1.5.1 (2017-07-19)

Enhancements
Bug Fixes

1.5.0 (2017-06-06)

Enhancements
Bug Fixes

1.4.4 (2017-04-07)

Enhancements
Bug Fixes
  • None.

1.4.3 (2017-03-31)

Enhancements
Bug Fixes
  • Reference proxy display name always returns "ReferenceProxy". Behavior corrected to return the name or path of the reference.
    Barak Weiss #472

1.4.2 (2016-12-19)

Enhancements
Bug Fixes

1.4.1 (2016-11-02)

Enhancements
  • Added RemoteRunnable wrapper to achieve Apple Watch compatibility
    Eldorado234 #518
Bug Fixes
  • None.

1.4.0 (2016-10-28)

Enhancements
  • Use Nanaimo for native ruby ASCII plist parsing and serialization. Removes the dependency on Xcode, FFI, and macOS.
    Samuel Giddins
Bug Fixes
  • None.

1.3.3 (2016-10-20)

Enhancements
  • None.
Bug Fixes
  • Fix regression resulting in projects existing product ref groups being altered
    Rashin Arab #429

  • Fixed handling of xcdatamodeld packages in subfolders.
    Simon Seyer #427

1.3.2 (2016-10-10)

Enhancements
  • None.
Bug Fixes

1.3.1 (2016-09-10)

Enhancements
  • None.
Bug Fixes

1.3.0 (2016-09-02)

Enhancements
  • 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

Bug Fixes
  • None.

1.2.0 (2016-07-11)

Enhancements
  • 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

  • Fix plist serialization with Xcode 8 beta 1.
    Boris Bügling #389

Bug Fixes
  • None.

1.1.0 (2016-06-01)

Enhancements
  • Add test target and extension target helpers to PBXNativeTarget.
    Samuel Giddins
Bug Fixes
  • None.

1.0.0 (2016-05-10)

Enhancements
Bug Fixes
  • None.

1.0.0.rc.2 (2016-05-04)

Enhancements
Bug Fixes

1.0.0.rc.1 (2016-04-30)

Enhancements
  • None.
Bug Fixes
  • None.

1.0.0.beta.4 (2016-04-14)

Enhancements
Bug Fixes
  • Improve the error when attempting to get the absolute path for a workspace file reference of developer type.
    Samuel Giddins CocoaPods#5107

1.0.0.beta.3 (2016-02-24)

Bug Fixes

1.0.0.beta.2 (2015-12-30)

Bug Fixes

1.0.0.beta.1 (2015-12-30)

Enhancements
  • 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 the fiddle gem will not cause an exception -- that exception has been delayed until actually attempting to serialize / load a plist file.
    Samuel Giddins

Bug Fixes

0.28.2 (2015-10-09)

Bug Fixes

0.28.1 (2015-10-05)

Bug Fixes

0.28.0 (2015-10-01)

Enhancements
Bug Fixes

0.27.2 (2015-09-02)

Enhancements
  • Cache some calculations in deterministic UUID generation.
    Samuel Giddins

0.27.1 (2015-08-28)

Bug Fixes
  • This release fixes a file permissions error when using the RubyGem.
    Samuel Giddins

0.27.0 (2015-08-26)

Enhancements

0.26.3 (2015-07-26)

Bug Fixes

0.26.2 (2015-07-18)

Bug Fixes

0.26.1 (2015-07-05)

Enhancements
  • Vastly speed up deterministic UUID generation for large projects.
    Samuel Giddins

0.26.0 (2015-07-02)

Enhancements

0.25.1 (2015-06-27)

Bug Fixes

0.25.0 (2015-06-27)

Enhancements
Bug Fixes

0.24.3 (2015-06-27)

Bug Fixes

0.24.2 (2015-05-27)

Enhancements

0.24.1 (2015-04-28)

Enhancements

0.24.0 (2015-04-18)

Enhancements

Bug Fixes

0.23.1 (2015-03-26)

Bug Fixes

0.23.0 (2015-03-10)

Enhancements

Bug Fixes

0.22.0 (2015-02-25)

Enhancements
  • Use the DVTFoundation.framework of Xcode to serialize projects as ASCII plists. This makes the optional installation of xcproj 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

Bug Fixes

  • 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

0.21.2 (2015-01-27)

Bug Fixes
  • Include common build settings on custom build configurations.
    Kyle Fuller

0.21.1 (2015-01-27)

Bug Fixes

0.21.0 (2014-12-25)

Breaking
Enhancements
  • ProjectHelper The ::common_build_settings method supports now a new parameter language 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 command config-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

Development Enhancements
  • 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

0.20.2 (2014-11-15)

Bug Fixes
  • FileReference Fixes an issue that caused project names containing ", ', &, < or > to produce a workspace that Xcode could not open.
    Hugo Tunius CocoaPods#2807

0.20.1 (2014-10-28)

Minor Enhancements
  • 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

Bug Fixes
  • 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

0.20.0 (2014-10-26)

Breaking
  • Support for Ruby < 2.0.0 has been dropped. Xcodeproj now depends on Ruby 2.0.0 or greater.
    Kyle Fuller
Enhancements
Minor Enhancements
  • PBXCopyFilesBuildPhase: Add a convenience method symbol_dst_subfolder_spec to set the destination subfolder specification by a symbol.
    Marius Rackwitz Xcodeproj#187

  • PBXNativeTarget: Return newly created build files by add_file_references and yield each one to allow direct modification of its settigs.
    Marius Rackwitz Xcodeproj#187

Bug Fixes

0.19.4 (2014-10-15)

Bug Fixes

0.19.3 (2014-10-07)

Bug Fixes
  • PlistHelper: Drop usage of the CFPropertyList gem and plutil and replace it with a version that uses the native CFPropertyList APIs from the OS X CoreFoundation 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

0.19.2 (2014-09-25)

Bug Fixes
  • PlistHelper: Only try to use plutil 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

0.19.1 (2014-09-12)

Bug Fixes
  • Config: Remove space after -l flag in other linker flags.
    Fabio Pelosin

0.19.0 (2014-09-11)

  • PlistHelper: Now the plutil 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 in OTHER_LDFLAGS.
    Fabio Pelosin

  • PBXGroup: Now file references to Xcode projects are properly handled and setup. Also the ObjectDictionary 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 for PBXNativeTarget#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 disable xcproj via an environment variable.
    Fabio Pelosin

Bug Fixes
  • Project: Fixed reference counting issue when deleting sub-projects.

0.18.0 (2014-07-24)

Enhancements
Bug fixes

0.17.0 (2014-05-19)

Enhancements

0.16.1 (2014-04-15)

Minor Enhancements
Bug Fixes
  • [Xcodeproj::Project#reference_for_path] Support for string parameter.
    jlj

0.16.0 (2014-03-31)

Breaking
  • [Constants] Disable errors on warnings for default build settings
    Fabio Pelosin

0.15.3 (2014-03-29)

Bug Fixes
  • [Extension] Fixed build on OS X 10.9's system Ruby (2.0.0). Eloy Durán

0.15.1 (2014-03-29)

Bug Fixes
  • [Constants] Temporarily reverting the changes to OTHER_LDFLAGS as the were creating issues in CocoaPods.
    Fabio Pelosin

0.15.0 (2014-03-27)

Breaking
Enhancements
Bug Fixes
  • [Extension] Fixed intermittent Xcodeproj::PlistHelper.write_plist error.
    Eloy Durán

0.14.1 (2013-11-01)

Enhancements
  • Add support for absolute, group and container project references in workspaces
    Kyle Fuller #118
Bug Fixes
  • [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

0.14.0 (2013-10-24)

Bug Fixes
  • [Scheme] Generate correct ReferencedContainer attribute when the Xcode project has a non-empty projectDirPath.
    Per Eckerdal #102
Enhancements
  • [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 to 1 to always build the C extension or to 0 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

0.13.1 (2013-10-10)

Bug Fixes
  • Fix Unable to read data from Model.xcdatamodeld/.xccurrentversion when there are more Data model versions.
    Pim Snel
Enhancements
  • [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

0.13.0 (2013-10-09)

Breaking
  • [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
Enhancements
  • [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

0.12.0 (2013-10-08)

Breaking
  • [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

Enhancements
  • [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

0.11.1 (2013-09-21)

Bug Fixes
  • 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

0.11.0 (2013-09-20)

Breaking
  • 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 new arm64 architecture. CocoaPods#1352

  • The default of the ONLY_ACTIVE_ARCH setting has changed to YES in the Debug 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 of PBXNativeTarget#add_system_framework.

Enhancements
  • [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.

Bug Fixes
  • [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, &amp;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

0.10.1 (2013-09-04)

Enhancements

0.10.0 (2013-09-04)

Breaking
  • 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 of Xcodeproj::Project.new, which now is deprecated for that purpose.

  • Project#save_as has been renamed to Project#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.

Enhancements
  • 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), and PBXFileReference#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.

0.9.0 (2013-08-02)

Enhancements
  • 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.

Bug Fixes
  • The file type of the frameworks file references has be corrected.