<commit_before># Xcodeproj Changelog

## 0.20.2

##### Bug Fixes

* `FileReference` Fixes an issue that caused project names containing
  `"`, `'`, `&`, `<` or `>` to produce a workspace that Xcode could not open.  
  [<NAME>](https://github.com/K0nserv)
  [CocoaPods#2807](https://github.com/CocoaPods/CocoaPods/issues/2807)


## 0.20.1

###### 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.  
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#216](https://github.com/CocoaPods/Xcodeproj/pull/216)

* `NativeTarget` Make adding a target dependency O(1) constant speed.  
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#216](https://github.com/CocoaPods/Xcodeproj/pull/216)

* `Object` Cache an object's plist name, which is used very often during project
  generation.  
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#216](https://github.com/CocoaPods/Xcodeproj/pull/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.  
  [<NAME>](https://github.com/alloy)
  [CocoaPods#2632](https://github.com/CocoaPods/CocoaPods/issues/2632)
  [CocoaPods#2739](https://github.com/CocoaPods/CocoaPods/issues/2739)


## 0.20.0

###### Breaking

* Support for Ruby < 2.0.0 has been dropped. Xcodeproj now depends on
  Ruby 2.0.0 or greater.  
  [<NAME>](https://github.com/kylef)


###### Enhancements

* `Project`: Recognize merge conflicts and raise a helpful error.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#192](https://github.com/CocoaPods/Xcodeproj/pull/192)

* `PBXContainerItemProxy`: Allow access to the proxied object.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#178](https://github.com/CocoaPods/Xcodeproj/pull/178)


###### Minor Enhancements

* `PBXCopyFilesBuildPhase`: Add a convenience method `symbol_dst_subfolder_spec`
  to set the destination subfolder specification by a symbol.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#187](https://github.com/CocoaPods/Xcodeproj/pull/187)

* `PBXNativeTarget`: Return newly created build files by `add_file_references`
  and yield each one to allow direct modification of its settigs.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#187](https://github.com/CocoaPods/Xcodeproj/pull/187)


###### Bug Fixes

* `PBXNativeTarget`: Fixed the creation of target dependencies, which refer
  to subprojects.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#178](https://github.com/CocoaPods/Xcodeproj/pull/178)

* `PBXReferenceProxy`: Added the missing attribute name, which could appear when
  external frameworks are referenced.
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#189](https://github.com/CocoaPods/Xcodeproj/pull/189)


## 0.19.4

###### Bug Fixes

* `PlistHelper`: Add support for Ruby 1.9.3's implementation of `Fiddle`.  
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#206](https://github.com/CocoaPods/Xcodeproj/issues/206)

* Stop re-writing config files if they have not changed.  
  [<NAME>](https://github.com/kylef)
  [<NAME>](https://github.com/neonichu)


## 0.19.3

###### 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.  
  [<NAME>](https://github.com/alloy)
  [CocoaPods#2483](https://github.com/CocoaPods/CocoaPods/issues/2483)
  [Xcodeproj#198](https://github.com/CocoaPods/Xcodeproj/issues/198)
  [Xcodeproj#200](https://github.com/CocoaPods/Xcodeproj/pull/200)


## 0.19.2

###### 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`.
  [<NAME>](https://github.com/alloy)
  [CocoaPods#2502](https://github.com/CocoaPods/CocoaPods/issues/2502)


## 0.19.1

###### Bug Fixes

* `Config`: Remove space after -l flag in other linker flags.  
  [<NAME>](https://github.com/fabiopelosin)


## 0.19.0

* `PlistHelper`: Now the `plutil` tool is used to save the files if available
  to produce output consistent with Xcode.  
  [<NAME>](https://github.com/fabiopelosin)

* `Project`: Added support for adding file references to sub-projects.  
  [<NAME>](https://github.com/fabiopelosin)

* `Config`: The config class now properly handles quotes in `OTHER_LDFLAGS`.  
  [<NAME>](https://github.com/fabiopelosin)

* `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.
  [<NAME>](https://github.com/fabiopelosin)
  [Xcodeproj#172](https://github.com/CocoaPods/Xcodeproj/pull/172)

* `Constants`: Support XCTest as product type and don't fail for
  `PBXNativeTarget#symbol_type` on unknown product types.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#176](https://github.com/CocoaPods/Xcodeproj/pull/176)

* `Workspace`: Now a template is used to produce the same formatting of Xcode.  
  [<NAME>](https://github.com/fabiopelosin)

* `Project`: Improved validation of object attributes.  
  [<NAME>](https://github.com/fabiopelosin)

* `Project`: Completed support for dictionaries.  
  [<NAME>](https://github.com/fabiopelosin)

* `Project`: Added possibility to disable `xcproj` via an environment variable.  
  [<NAME>](https://github.com/fabiopelosin)

###### Bug Fixes

* `Project`: Fixed reference counting issue when deleting sub-projects.


## 0.18.0

###### Enhancements

* [PlistHelper] The native extension has been removed in favour of the usage of
  the `plutil` tool to read ASCII property list files.  
  [<NAME>losin](https://github.com/fabiopelosin)
  [Xcodeproj#168](https://github.com/CocoaPods/Xcodeproj/pull/168)
  [Xcodeproj#167](https://github.com/CocoaPods/Xcodeproj/issues/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.  
  [<NAME>](https://github.com/jpsim)
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#158](https://github.com/CocoaPods/Xcodeproj/issues/158)
  [Xcodeproj#161](https://github.com/CocoaPods/Xcodeproj/pull/161)

###### Bug fixes

* [Workspace] Fixed adding a project to a workspace.
  [<NAME>](https://github.com/alessandroorru)
  [Xcodeproj#155](https://github.com/CocoaPods/Xcodeproj/pull/155)

## 0.17.0

###### Enhancements

* [Workspace] Added support for file references.  
  [<NAME>](https://github.com/kylef)
  [<NAME>](https://github.com/fabiopelosin)
  [Xcodeproj#105](https://github.com/CocoaPods/Xcodeproj/pull/150)

<commit_msg>[Changelog] Use two empty lines between each version<commit_after># Xcodeproj Changelog

## 0.20.2

##### Bug Fixes

* `FileReference` Fixes an issue that caused project names containing
  `"`, `'`, `&`, `<` or `>` to produce a workspace that Xcode could not open.  
  [<NAME>](https://github.com/K0nserv)
  [CocoaPods#2807](https://github.com/CocoaPods/CocoaPods/issues/2807)


## 0.20.1

###### 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.  
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#216](https://github.com/CocoaPods/Xcodeproj/pull/216)

* `NativeTarget` Make adding a target dependency O(1) constant speed.  
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#216](https://github.com/CocoaPods/Xcodeproj/pull/216)

* `Object` Cache an object's plist name, which is used very often during project
  generation.  
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#216](https://github.com/CocoaPods/Xcodeproj/pull/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.  
  [<NAME>](https://github.com/alloy)
  [CocoaPods#2632](https://github.com/CocoaPods/CocoaPods/issues/2632)
  [CocoaPods#2739](https://github.com/CocoaPods/CocoaPods/issues/2739)


## 0.20.0

###### Breaking

* Support for Ruby < 2.0.0 has been dropped. Xcodeproj now depends on
  Ruby 2.0.0 or greater.  
  [<NAME>](https://github.com/kylef)


###### Enhancements

* `Project`: Recognize merge conflicts and raise a helpful error.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#192](https://github.com/CocoaPods/Xcodeproj/pull/192)

* `PBXContainerItemProxy`: Allow access to the proxied object.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#178](https://github.com/CocoaPods/Xcodeproj/pull/178)


###### Minor Enhancements

* `PBXCopyFilesBuildPhase`: Add a convenience method `symbol_dst_subfolder_spec`
  to set the destination subfolder specification by a symbol.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#187](https://github.com/CocoaPods/Xcodeproj/pull/187)

* `PBXNativeTarget`: Return newly created build files by `add_file_references`
  and yield each one to allow direct modification of its settigs.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#187](https://github.com/CocoaPods/Xcodeproj/pull/187)


###### Bug Fixes

* `PBXNativeTarget`: Fixed the creation of target dependencies, which refer
  to subprojects.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#178](https://github.com/CocoaPods/Xcodeproj/pull/178)

* `PBXReferenceProxy`: Added the missing attribute name, which could appear when
  external frameworks are referenced.
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#189](https://github.com/CocoaPods/Xcodeproj/pull/189)


## 0.19.4

###### Bug Fixes

* `PlistHelper`: Add support for Ruby 1.9.3's implementation of `Fiddle`.  
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#206](https://github.com/CocoaPods/Xcodeproj/issues/206)

* Stop re-writing config files if they have not changed.  
  [<NAME>](https://github.com/kylef)
  [<NAME>](https://github.com/neonichu)


## 0.19.3

###### 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.  
  [<NAME>](https://github.com/alloy)
  [CocoaPods#2483](https://github.com/CocoaPods/CocoaPods/issues/2483)
  [Xcodeproj#198](https://github.com/CocoaPods/Xcodeproj/issues/198)
  [Xcodeproj#200](https://github.com/CocoaPods/Xcodeproj/pull/200)


## 0.19.2

###### 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`.
  [<NAME>](https://github.com/alloy)
  [CocoaPods#2502](https://github.com/CocoaPods/CocoaPods/issues/2502)


## 0.19.1

###### Bug Fixes

* `Config`: Remove space after -l flag in other linker flags.  
  [<NAME>](https://github.com/fabiopelosin)


## 0.19.0

* `PlistHelper`: Now the `plutil` tool is used to save the files if available
  to produce output consistent with Xcode.  
  [<NAME>](https://github.com/fabiopelosin)

* `Project`: Added support for adding file references to sub-projects.  
  [<NAME>](https://github.com/fabiopelosin)

* `Config`: The config class now properly handles quotes in `OTHER_LDFLAGS`.  
  [<NAME>](https://github.com/fabiopelosin)

* `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.
  [<NAME>](https://github.com/fabiopelosin)
  [Xcodeproj#172](https://github.com/CocoaPods/Xcodeproj/pull/172)

* `Constants`: Support XCTest as product type and don't fail for
  `PBXNativeTarget#symbol_type` on unknown product types.  
  [<NAME>](https://github.com/mrackwitz)
  [Xcodeproj#176](https://github.com/CocoaPods/Xcodeproj/pull/176)

* `Workspace`: Now a template is used to produce the same formatting of Xcode.  
  [<NAME>](https://github.com/fabiopelosin)

* `Project`: Improved validation of object attributes.  
  [<NAME>](https://github.com/fabiopelosin)

* `Project`: Completed support for dictionaries.  
  [<NAME>](https://github.com/fabiopelosin)

* `Project`: Added possibility to disable `xcproj` via an environment variable.  
  [<NAME>](https://github.com/fabiopelosin)

###### Bug Fixes

* `Project`: Fixed reference counting issue when deleting sub-projects.


## 0.18.0

###### Enhancements

* [PlistHelper] The native extension has been removed in favour of the usage of
  the `plutil` tool to read ASCII property list files.  
  [<NAME>](https://github.com/fabiopelosin)
  [Xcodeproj#168](https://github.com/CocoaPods/Xcodeproj/pull/168)
  [Xcodeproj#167](https://github.com/CocoaPods/Xcodeproj/issues/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.  
  [<NAME>](https://github.com/jpsim)
  [<NAME>](https://github.com/alloy)
  [Xcodeproj#158](https://github.com/CocoaPods/Xcodeproj/issues/158)
  [Xcodeproj#161](https://github.com/CocoaPods/Xcodeproj/pull/161)

###### Bug fixes

* [Workspace] Fixed adding a project to a workspace.
  [<NAME>](https://github.com/alessandroorru)
  [Xcodeproj#155](https://github.com/CocoaPods/Xcodeproj/pull/155)


## 0.17.0

###### Enhancements

* [Workspace] Added support for file references.  
  [<NAME>](https://github.com/kylef)
  [<NAME>](https://github.com/fabiopelosin)
  [Xcodeproj#105](https://github.com/CocoaPods/Xcodeproj/pull/150)


{'fraction_non_alphanumeric': 0.147539852322131, 'fraction_numerical': 0.03036367400455455, 'mean_word_length': 4.341688168079616, 'pattern_counts': {'":': 0, '<': 73, '<?xml version=': 0, '>': 73, 'https://': 116, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3542111', 'n_tokens_mistral': 5579, 'n_tokens_neox': 5185, 'n_words': 1247}