Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
7807 lines (5625 sloc) 305 KB

Installation & Update

To install or update CocoaPods see this guide.

To install release candidates run [sudo] gem install cocoapods --pre


Bug Fixes
  • None.

1.11.2 (2021-09-13)

  • None.
Bug Fixes

1.11.1 (2021-09-12)

  • None.
Bug Fixes

1.11.0 (2021-09-01)

  • None.
Bug Fixes
  • None.

1.11.0.rc.1 (2021-08-25)

  • None.
Bug Fixes

1.11.0.beta.2 (2021-08-11)

Bug Fixes

1.11.0.beta.1 (2021-08-09)

Bug Fixes

1.10.2 (2021-07-28)

  • None.
Bug Fixes

1.10.1 (2021-01-07)

  • None.
Bug Fixes

1.10.0 (2020-10-20)

  • None.
Bug Fixes
  • Generate the correct LD -l flags for XCFrameworks containing libraries
    Wes Campaigne #10071

  • Add support for automatically embedding XCFramework debug symbols for XCFrameworks generated with Xcode 12
    johntmcintosh #10111

1.10.0.rc.1 (2020-09-15)

  • None.
Bug Fixes
  • Fix XCFramework slice selection
    lowip #10026

  • Honor test spec deployment target during validation.
    Dimitris Koutsogiorgas #9999

  • Ensure that incremental installation is able to set target dependencies for a test spec that uses a custom app_host_name that is in a project that is not regenerated.
    Samuel Giddins

1.10.0.beta.2 (2020-08-12)

  • None.
Bug Fixes

1.10.0.beta.1 (2020-07-17)

  • Bump minimum Ruby version to 2.3.3 (included with macOS High Sierra)
    Eric Amorde #9821
Bug Fixes

1.9.3 (2020-05-29)

  • None.
Bug Fixes
  • None.

1.9.2 (2020-05-22)

  • None.
Bug Fixes
  • None.

1.9.1 (2020-03-09)

Bug Fixes
  • Apply correct SYSTEM_FRAMEWORK_SEARCH_PATHS for XCTUnwrap fix.
    Dimitris Koutsogiorgas #9579

  • Fix an issue that caused a build failure with vendored XCFrameworks on macOS
    Eric Amorde #9572

  • Fix an issue that prevented the correct XCFramework slice from being selected for watchOS extensions
    Eric Amorde #9569

1.9.0 (2020-02-25)

  • None.
Bug Fixes

1.9.0.beta.3 (2020-02-04)

  • PathList optimizations related to file system reads.
    manuyavuz #9428
Bug Fixes

1.9.0.beta.2 (2019-12-17)

  • None.
Bug Fixes

1.9.0.beta.1 (2019-12-16)

Bug Fixes

1.8.4 (2019-10-16)

  • None.
Bug Fixes

1.8.3 (2019-10-04)

  • None.
Bug Fixes

1.8.1 (2019-09-27)

  • None.
Bug Fixes
  • None.

1.8.0 (2019-09-23)

  • None.
Bug Fixes

1.8.0.beta.2 (2019-08-27)

  • None.
Bug Fixes

1.8.0.beta.1 (2019-08-05)

Bug Fixes

1.7.5 (2019-07-19)

  • None.
Bug Fixes

1.7.4 (2019-07-09)

  • None.
Bug Fixes

1.7.3 (2019-06-28)

  • None.
Bug Fixes

1.7.2 (2019-06-13)

  • None.
Bug Fixes

1.7.1 (2019-05-30)

  • None.
Bug Fixes
  • Stabilize product reference UUIDs to fix Xcode crashing with incremental installation.
    Sebastian Shanus #8845

  • Fix a 1.7.0 regression in header directory paths when using static libraries
    Eric Amorde #8836

1.7.0 (2019-05-22)

  • None.
Bug Fixes

1.7.0.rc.2 (2019-05-15)

  • None.
Bug Fixes

1.7.0.rc.1 (2019-05-02)

  • Replace Pods project Dependencies group with Development Pods and Pods groups.
    Sebastian Shanus #8659

  • Add an error message for :podspec pods not matching the version in Pods and on disk
    orta #8676

Bug Fixes

1.7.0.beta.3 (2019-03-28)

  • Adds support for referring to other podspecs during validation
    Orta Therox #8536
Bug Fixes

1.7.0.beta.2 (2019-03-08)

Bug Fixes

1.7.0.beta.1 (2019-02-22)

Bug Fixes

1.6.2 (2019-05-15)

  • None.
Bug Fixes

1.6.1 (2019-02-21)

Bug Fixes

1.6.0 (2019-02-07)

  • None.
Bug Fixes
  • None.

1.6.0.rc.2 (2019-01-29)

  • None.
Bug Fixes

1.6.0.rc.1 (2019-01-25)

Bug Fixes

1.6.0.beta.2 (2018-10-17)

  • Remove contraction from docs to fix rendering on the website.
    stevemoser #8131

  • Provide an installation option to preserve folder structure
    dacaiguoguogmail #8097

  • Nests test specs host apps inside that Pod's directory for cleaner project navigators.
    Derek Ostrander

  • mark_ruby_file_ref add indent width and tab width config

  • Print an error that will show up in Xcode's issue navigator upon unexpected failures in the copy resources and embed frameworks script phases.
    Samuel Giddins

  • Validate that all generated PBXNativeTargets contain source files to build, so specs (including test specs) with no source files won't fail at runtime due to the lack of a generated executable.
    Samuel Giddins

  • Print better promote message when unable to find a specification.
    Xinyu Zhao #8064

  • Silence warnings in headers for Pods with inhibit_warnings => true
    Guillaume Algis #6401

  • When resolving a locked dependency, source the spec from the locked specs repository.
    Samuel Giddins

  • Slightly improve resolution speed for Podfiles that contain multiple targets with the same dependencies.
    Samuel Giddins

Bug Fixes

1.6.0.beta.1 (2018-08-16)

Bug Fixes

1.5.3 (2018-05-25)

  • None.
Bug Fixes

1.5.2 (2018-05-09)

  • None.
Bug Fixes
  • None.

1.5.1 (2018-05-07)

  • Improve performance of the dependency resolver by removing duplicates for dependency nodes. Jacek Suliga
Bug Fixes

1.5.0 (2018-04-04)

  • None.
Bug Fixes

1.5.0.beta.1 (2018-03-23)

  • Add --exclude-pods option to pod update to allow excluding specific pods from update
    Oleksandr Kruk #7334

  • Add support for mixed Objective-C and Swift static frameworks
    Paul Beusterien #7213

  • Improve pod install performance for pods with exact file paths rather than glob patterns
    Muhammed Yavuz Nuzumlalı #7473

  • Display a message when a pods source has changed during installation
    Dimitris Koutsogiorgas #7464

  • Add support for modular header search paths, include "legacy" support.
    Dimitris Koutsogiorgas #7412

  • Set direct and transitive dependency header search paths for pod targets
    Dimitris Koutsogiorgas #7116

  • Log target names missing host for libraries
    Keith Smiley #7346

  • Add a --no-overwrite flag to pod repo push to disable overwriting existing specs that have already been pushed.
    Samuel Giddins

  • Store which specs repo a pod comes from in the lockfile.
    Samuel Giddins

  • Add set -u to the copy frameworks and copy resources scripts.
    Keith Smiley #7180

  • Allow integrating into static library targets without attempting to copy resources or embed frameworks unless UNLOCALIZED_RESOURCES_FOLDER_PATH or FRAMEWORKS_FOLDER_PATH is set.
    Samuel Giddins

  • Change color scheme of pod outdated from red-yellow-green to red-blue-green to be more colorblind friendly

  • Add support for integrating swift pods as static libraries.
    Danielle Tomlinson Samuel Giddins #6899

  • Document format of POD_NAMES in pod update

  • Update validator to stream output as xcodebuild runs
    abbeycode #7040

Bug Fixes

1.4.0 (2018-01-18)

  • Show warning when Pod source uses unencrypted HTTP
    KrauseFx #7293
Bug Fixes
  • Do not include test spec resources and framework paths of dependent targets into test scripts
    Dimitris Koutsogiorgas #7318

  • Restore development_pod_targets public method in installer
    Dimitris Koutsogiorgas #7292

  • Fix resolution when multiple sources provide the same pods, and there are (potential) dependencies between the sources.
    Samuel Giddins #7031

  • Ensure that externally-sourced (e.g. local & git) pods are allowed to resolve to prerelease versions.

1.4.0.rc.1 (2017-12-16)

  • Integrate swift_version DSL support into pod targets
    Dimitris Koutsogiorgas #7134

  • Add color indication to output of pod outdated
    iv-mexx #7204

  • Set syntax of podspecs from development pods to Ruby when appropriate
    Eric Amorde #7278

  • Add support for editing the podspec, license, README, license, and docs of local development pods
    Eric Amorde #7093

  • Show warning when SDK provider tries to push a version with an unencrypted HTTP source
    KrauseFx #7250

Bug Fixes

1.4.0.beta.2 (2017-10-24)

Bug Fixes

1.4.0.beta.1 (2017-09-24)

Bug Fixes

1.3.1 (2017-08-02)

  • None.
Bug Fixes

1.3.0 (2017-08-02)

  • None.
Bug Fixes

1.3.0.rc.1 (2017-07-27)

  • None.
Bug Fixes

1.3.0.beta.3 (2017-07-19)

Bug Fixes

1.3.0.beta.2 (2017-06-22)

Bug Fixes

1.3.0.beta.1 (2017-06-06)

Bug Fixes

1.2.1 (2017-04-11)

  • None.
Bug Fixes

1.2.1.rc.1 (2017-04-05)

  • None.
Bug Fixes

1.2.1.beta.1 (2017-03-08)

Bug Fixes

1.2.0 (2017-01-28)

  • None.
Bug Fixes

1.2.0.rc.1 (2017-01-13)

Bug Fixes
  • None.

1.2.0.beta.3 (2016-12-28)

Bug Fixes

1.2.0.beta.1 (2016-10-28)

  • Generate PODS_TARGET_SRCROOT build setting for each pod target.
    Dimitris Koutsogiorgas #5375

  • Add support for running CocoaPods on Linux.
    Samuel Giddins

  • Use native Ruby ASCII plist parsing and serialization, removing dependencies on FFI, Xcode, and macOS.
    Samuel Giddins

  • Run codesigning in parallel in the embed frameworks build phase when COCOAPODS_PARALLEL_CODE_SIGN is set to true.
    Ben Asher #6088

Bug Fixes

1.1.1 (2016-10-20)

  • None.
Bug Fixes

1.1.0 (2016-10-19)

Bug Fixes

1.1.0.rc.3 (2016-10-11)

Bug Fixes

1.1.0.rc.2 (2016-09-13)

  • Use the SWIFT_VERSION when linting pods. To lint with Swift 3.0 add a Swift Version file. echo "3.0" >> .swift-version.
    Danielle Tomlinson #5841
Bug Fixes

1.1.0.rc.1 (2016-09-10)

Bug Fixes
  • Wrap generated import headers with OBJC to fix C only pods.
    Dimitris Koutsogiorgas #5291

  • Prevent crash when generating acknowledgements when license type is not specified.
    Marcelo Fabri #5826

  • Pass full path to App.xcworkspace for spec validation, and use git -C for pod repo push git ops.
    Ben Asher #5805

1.1.0.beta.2 (2016-09-03)

  • Remove references to the pre-1.0 Migrator.
    Danielle Tomlinson #5635

  • Improve performance of dependency resolution. yanzhiwei147 #5510

  • Add support for building Messages applications.
    Ben Asher #5726

  • Improved messaging when missing host targets for embedded targets. Improved support for framework-only projects.
    Ben Asher #5733

    Ben Asher #5732

  • Verify that embedded target platform and swift version matches the host.
    Ben Asher #5747

  • Pass the version of CocoaPods to pod lib create's configure script.
    orta #5787

  • Improve host target detection for embedded targets in sub-projects.
    Ben Asher #5622

Bug Fixes
  • Hash scope suffixes if they are over 50 characters to prevent file paths from being too long.
    Danielle Tomlinson #5491

  • Fix codesigning identity on watchOS and tvOS targets.
    Danielle Tomlinson #5686

  • Fix SWIFT_VERSION not being read when only defined at the project level.
    Ben Asher #5700 and #5737

  • Fix analyzer checking the compatibility of an embedded target with a host that has not been added the Podfile.
    Ben Asher #5783

1.1.0.beta.1 (2016-07-11)

Bug Fixes

1.0.1 (2016-06-02)

  • None.
Bug Fixes

1.0.0 (2016-05-10)

  • Validate that resource bundles declared in the podspec contain resources.
    Samuel Giddins #5218

  • Improvements to the error messaging around missing dependencies.
    Orta Therox #5260

  • Make sharing schemes for development pods an installation option (share_schemes_for_development_pods) and disable sharing schemes by default.
    Samuel Giddins

Bug Fixes

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

  • None.
Bug Fixes
  • Handle when an abstract target has no declared platform without crashing.
    Samuel Giddins #5236

  • Don't recurse into child directories to find podspecs when running pod spec lint.
    Samuel Giddins #5244

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

  • The pod init command now uses target inheritance for test targets in the generated Podfile.
    Orta Therox #4714

  • Support customized build directories by letting user xcconfig definitions rely on the new overridable alias build variable PODS_BUILD_DIR.
    Marius Rackwitz #5217

Bug Fixes
  • Fix for pod repo push --help throwing an error.
    Boris Bügling #5214

  • The warning for not having utf-8 set as the default encoding for a terminal now properly respects the --no-ansi argument.
    Joshua Kalpin #5199

1.0.0.beta.8 (2016-04-15)

  • None.
Bug Fixes
  • Headers from vendored frameworks no longer end up in the HEADER_SEARCH_PATH when using frameworks. They are now assumed to be already present as modular headers in the framework itself.
    Mark Spanbroek #5146

  • Access to the Pod::SourcesManager constant has been restored, though its use is considered deprecated and subject to removal at any time. Migrate to use Pod::Config.instance.sources_manager in some manner as soon as possible.
    Samuel Giddins

  • Running pod repo update --silent will now properly silence git output while updating the repository.
    Samuel Giddins

1.0.0.beta.7 (2016-04-15)

  • When an unknown build configuration is mentioned in the Podfile, CocoaPods will suggest the build configurations found in the user project.
    Samuel Giddins #5113

  • Improved the error message when a matching spec cannot be found, mentioning that now pod repo update is not implicit when running pod install.
    Orta Therox #5135

  • Add support for sharded specs directories.
    Samuel Giddins #5002

  • Pass the build setting OTHER_CODE_SIGN_FLAGS to codesign for the generated embed frameworks build phase's script, as Xcode does when signing natively.
    Václav Slavík #5087

Bug Fixes
  • Sort files from Dir.glob explicitly to produce same result on case sensitive file system as result on case insensitive file system.
    Soutaro Matsumoto

  • Fix build path for resource bundles.
    Marius Rackwitz #5034

  • Rely on TARGET_BUILD_DIR instead of CONFIGURATION_BUILD_DIR in the generated embed resources build phase's script, so that UI test targets can be run.
    seaders #5133

  • Ensure that a CFBundleVersion is set for resource bundles' Info.plist files.
    Samuel Giddins #4897

1.0.0.beta.6 (2016-03-15)

  • Running pod install doesn't imply an automatic spec repo update.
    The old behavior can be achieved by passing in the option --repo-update or running pod repo update.
    Marius Rackwitz #5004

  • Remove the configuration variable skip_repo_update as the default behavior varies now between pod install and pod (update|outdated).
    Marius Rackwitz #5017

  • The master specs repo will no longer perform 'no-op' git fetches. This should help to reduce the load on GitHub's servers.
    Daniel Tomlinson #5005 #4989

  • The specs repos will no longer support shallow clones to reduce CPU load on git servers. Pre-existing shallow clones of the master repo will automatically be upgraded to deep clones when the repo is updated.
    Samuel Giddins #5016

  • The validator will check that all public_header_files and private_header_files are also present in source_files.
    Samuel Giddins #4936

Bug Fixes
  • The master specs repository can no longer be added via pod repo add, but instead must be done via pod setup.
    Samuel Giddins

  • Print a friendly error message when the platform for a target cannot be inferred.
    Samuel Giddins #4790

  • Rely on TARGET_BUILD_DIR instead of CONFIGURATION_BUILD_DIR in the generated embed frameworks build phase's script, so that UI test targets can be run.
    Marius Rackwitz #5022

  • Fix build paths for resources bundles.
    Marius Rackwitz #5028

  • Validate that a Podfile does not declare the same target twice.
    Samuel Giddins #5029

1.0.0.beta.5 (2016-03-08)

  • Development pods will no longer be implicitly unlocked. This makes CocoaPods respect constraints related to dependencies of development pods in the lockfile.

    If you change the constraints of a dependency of your development pod and want to override the locked version, you will have to use pod update ${DEPENDENCY_NAME} manually.
    Muhammed Yavuz Nuzumlalı #4211 #4577 #4580

  • Add the 📦 emoji in front of CocoaPods Script Build Phases to quickly and visually differentiate them from other phases.
    Olivier Halligon #4985

  • Enable syntax highlighting on the Podfile in the generated Pods.xcodeproj.
    Samuel Giddins #4962

Bug Fixes
  • Fixes paths passed for resources bundles in the copy resources script.
    Marius Rackwitz #4954

  • Fix saying the master specs repo exists when it has not been set up.
    Samuel Giddins #4955

  • Move ${TARGET_DEVICE_ARGS} out of the quotations for --sdk in the Copy Pods Resources build phase.
    seaders #4940

  • Handle when $PATH isn't set.
    Samuel Giddins

  • Module maps that are set per-platform will be installed for the correct platform.
    Samuel Giddins #4968

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

  • Allow deduplication to take effect even when the same pod is used with different sets of subspecs across different platforms. This changes the general naming scheme scoped pod targets. They are suffixed now on base of what makes them different among others for the same root spec instead of being prefixed by the dependent target.
    Marius Rackwitz #4146

  • Pass COCOAPODS_VERSION as environment variable when invoking the prepare_command.
    Marius Rackwitz #4933

Bug Fixes
  • Pods are built by default in another scoping level of the build products directory identified by their name to prevent name clashes among dependencies.
    Marius Rackwitz #4146

  • Fix mixed integrations where static libraries are used along frameworks from different target definitions in one Podfile.
    Marius Rackwitz #4146

  • Pass target device arguments to ibtool in the copy resources script, fixing compilation of storyboards when targeting versions of iOS prior to iOS 8.
    seaders #4913

  • Fix pod repo lint when passed a path argument.
    Boris Bügling #4883

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

  • None.
Bug Fixes
  • Don't try to embed project headers into frameworks.
    Marius Rackwitz #4819

  • Fix a crash in the analyzer when target deduplication is deactivated.
    Marius Rackwitz #4751

  • Handle CoreData mapping models with recursive resource globs.
    Eric Firestone #4809

  • Generate valid xcconfig when target name includes spaces.
    Dimitris Koutsogiorgas #4783

  • Properly add resource files to resources build phase.
    Eric Firestone #4762

  • Fix suggestion of sudo when it actually isn't needed.
    Marcel Jackwerth

  • Set the TARGET_DEVICE_FAMILY to support both iPhone and iPad for iOS resource bundle targets.
    Andy Rifken

  • Share user schemes of Pods.xcodeproj after generating deterministic UUIDS.
    Samuel Giddins

  • Only attempt to import a framework during linting if the pod has source files, and is thus being built by CocoaPods.
    Samuel Giddins #4823

  • Determine whether an external source needs to be fetched when updating a dependency regardless of subspec names.
    Samuel Giddins #4821

1.0.0.beta.2 (2016-01-05)

  • Present a friendly error suggesting running pod install when there are missing local podspecs when running pod outdated.
    Samuel Giddins #4716

  • Don't warn about setting base config when identical to current config.
    Jed Lewison #4722

  • Add user_targets method to the UmbrellaTargetDescription in the post-install hooks context.
    Samuel Giddins

Bug Fixes
  • Always fetch a :podspec dependency's podspec when it is missing in the Pods directory.
    Samuel Giddins #4717

  • The Info.plist file will now be generated properly for resource bundles, setting the proper CFBundlePackageType and omitting the CFBundleExecutable key.
    Samuel Giddins Xcodeproj#259

  • Fix crash when deintegrating due to major version change and there are multiple root-level Xcode projects.
    Samuel Giddins

  • Ensure the sandbox_root attribute is set on the pre-install hooks context.
    Samuel Giddins

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

  • The link_with Podfile DSL method has been removed in favor of target inheritance.
    Samuel Giddins

  • The :exclusive => true Podfile DSL target option has been removed in favor of the inherit! :search_paths directive.
    Samuel Giddins

  • The specification of :head dependencies has been removed.
    Samuel Giddins #4673

  • The deprecated :local dependency option has been removed in favor of the equivalent :path option.
    Samuel Giddins

  • The deprecated dependency method in the Podfile DSL has been removed in favor of the equivalent pod method.
    Samuel Giddins

  • The deprecated preferred_dependency method in the Specification DSL has been removed in favor of the equivalent default_subspecs method.
    Samuel Giddins

  • The docset_url Specification attribute has been removed.
    Samuel Giddins Core#284

  • Build configuration names are no longer set as pre-processor defines, but rather POD_CONFIGURATION_$CONFIGURATION_NAME is defined in order to lessen conflicts with pod code.

Highlighted Enhancements That Need Testing
  • The Podfile DSL has been cleaned up, with the removal of confusing options and the introduction of abstract targets, search paths-only inheritance, the specification of installation options, and the removal of head dependencies.
    Samuel Giddins #840
  • Add the ability to add a custom commit message when pushing a spec. Bart Jacobs #4583

  • Added support for pod env to print the pod environment without having to crash.
    Hemal Shah #3660

  • Add support for specifying :source with a pod dependency.
    Eric Firestone #4486

  • Ask user to run pod install when a resource not found during in copy resources script.
    Muhammed Yavuz Nuzumlalı

  • Add support to track .def sources.

  • Add support to track .def files as headers. Dimitris Koutsogiorgas #338

  • Pod::Installer::PostInstallHooksContext now offers access to the sandbox object.
    Marcelo Fabri #4487

  • Improve sorting algorithm for pod search.
    Muhammed Yavuz Nuzumlalı cocoapods-search#12

  • Improve pod search performance while using --full flag.
    Muhammed Yavuz Nuzumlalı cocoapods-search#8

  • Improve message when there is no spec in repos for dependency set in Podfile.
    Muhammed Yavuz Nuzumlalı #4430

  • Reduce the number of times the user's Xcode project is opened, speeding up installation.
    Samuel Giddins #4374

  • Improving the performance of Pod::Installer::Analyzer#generate_pod_targets
    Daniel Ribeiro #4399

  • Framework pods that have a header_mappings_dirs set will now produce frameworks with headers that respect the nesting.
    Samuel Giddins

  • The validator will now ensure that pods with a header_mappings_dirs have all of their headers inside that directory.
    Samuel Giddins

  • Pods will be validated with the -Wincomplete-umbrella compiler flag to ensure module maps are valid.
    Samuel Giddins #3428

  • The validator will now attempt to build an app that imports the pod.
    Samuel Giddins #2095 #2134

  • The Info.plist file's CFBundleIdentifier is now set via the PRODUCT_BUNDLE_IDENTIFIER build setting, consistent with Xcode 7.
    Samuel Giddins #4426

  • Externally-sourced pods will now have their specifications quickly linted.
    Samuel Giddins

  • Set the deployment target on pods to be that which is defined in the podspec.
    Samuel Giddins #4354

  • Set a deployment target for resource bundle targets.
    Samuel Giddins #3347

  • Targets that are no longer integrated with CocoaPods will be properly de-integrated when installation occurs.
    Samuel Giddins

  • Targets that are integrated will be ensured that they have all CocoaPods-related settings and phases properly installed.
    Samuel Giddins

  • Total de-integration will happen whenever the major version of CocoaPods changes, ensuring backwards-incompatible changes are properly applied.
    Samuel Giddins

  • The Podfile now allows specifying installation options via the install! directive.
    Samuel Giddins Core#151

  • The Podfile now allows marking targets as abstract and specifying the pod inheritance mode via the inherit! directive.
    Samuel Giddins #1249 #1626 #4001

Bug Fixes
  • Fix compiling of localized resources. Eric Firestone #1653

  • Fix compiling of asset catalog files inside resource bundles.
    Muhammed Yavuz Nuzumlalı #4501

  • Prevent installer to be run from inside sandbox directory.
    Muhammed Yavuz Nuzumlalı

  • Improve repo lint error message when no repo found with given name.
    Muhammed Yavuz Nuzumlalı #4142

  • Fix a crash in dependency resolution when running Ruby 2.3.
    Samuel Giddins #4345

  • Fix handling of localized files in Pods installed as frameworks.
    Tim Bodeit #2597

  • Only include native targets when generating the Podfile in pod init.
    Samuel Giddins #2169

  • Ensure that generated Info.plist files have a CFBundleShortVersionString that is precisely three dot-separated numbers.
    Samuel Giddins #4421

  • Set the APPLICATION_EXTENSION_API_ONLY build setting if integrating with a tvOS extension target, or a target that has the setting set to YES.
    Samuel Giddins #3644 #4393

  • Only the root directory of externally-sourced pods will be searched for podspecs.
    Samuel Giddins #3683

  • Remove the library name's extension when adding it in the "linker flags" build setting to support dynamic libraries.
    Andrea Cremaschi #4468

  • Specifying relative subspec names to the linter is now supported.
    Samuel Giddins #1917

  • Headers used to build a pod will no longer be duplicated for frameworks.
    Samuel Giddins #4420

  • The UIRequiredDeviceCapabilities key is now specified in the Info.plist file for tvOS pods built as frameworks.
    Samuel Giddins #4514

  • Fix Swift code completion for Development Pods by using realpath for symlinked source files.
    Boris Bügling #3777

  • Avoid the duplicate UUID warning when a Pod is installed for multiple platforms.
    Samuel Giddins #4521

  • Changing the name of a target in a Podfile will no longer cause warnings about being unable to set the base configuration XCConfig.
    Samuel Giddins

  • Ensure that linking multiple times against the same framework does not trigger the duplicate module name check for frameworks.
    Boris Bügling Samuel Giddins #4550

  • Fix lint in Xcode 7.2, it requires -destination.
    Boris Bügling #4652

  • Empty podfiles / target blocks no longer break the user's Xcode project.
    Samuel Giddins #3617

  • The pre-processor define for DEBUG will be set for all debug-based build configurations when building pods.
    Samuel Giddins #4148

0.39.0 (2015-10-09)

  • Podfile-specified options are passed to plugins as hashes that treat string and symbol keys identically.
    Samuel Giddins #3354
Bug Fixes
  • Only link dynamic vendored frameworks and libraries of pod dependencies.
    Kevin Coleman #4336

0.39.0.rc.1 (2015-10-05)

  • Support for adding dependency target vendored libraries and frameworks to build settings.
    Kevin Coleman #4278

  • Always link the aggregate target as static to the user project.
    Marius Rackwitz #4137

0.39.0.beta.5 (2015-10-01)

  • Activesupport 4 is now required, breaking compatibility with applications locked to 3.x.y.
Bug Fixes
  • Give a meaningful message for the case where there is no available stable version for a pod, and there is no explicit version requirement.
    Muhammed Yavuz Nuzumlalı #4197

  • Use watchsimulator when validating pods with the watchOS platform.
    Thomas Kollbach #4130

  • C or C++ preprocessor output files with .i extension now have their compiler flags set correctly.
    Andrea Aresu

  • Remove SDKROOT relative search path as it isn't needed anymore since XCTest.
    Boris Bügling #4219

  • Podfile generated by pod init now specifies iOS 8.0 as the default platform and includes use_frameworks! for Swift projects.
    Jamie Evans

  • Support for the new tvos platform.
    Boris Bügling #4152

  • Either generate just one pod target or generate it once for each target definition.
    Marius Rackwitz #4034

  • Stop setting DYLIB_CURRENT_VERSION, CURRENT_PROJECT_VERSION, and DYLIB_COMPATIBILITY_VERSION for pods integrated as dynamic frameworks.
    Samuel Giddins #4083

  • The headers folders paths for static library pods will be unset, fixing validation when archives are uploaded to iTunes Connect.
    Boris Bügling Samuel Giddins #4119

  • Don't require the platform attribute for targets without any declared pods when running pod install --no-integrate.
    Sylvain Guillopé #3151

  • Gracefully handle exception if creating the repos directory fails due to a system error like a permission issue.
    Sylvain Guillopé #4177

0.39.0.beta.4 (2015-09-02)

Bug Fixes
  • Using vendored frameworks without a Headers directory will no longer cause a crash.
    Samuel Giddins #3967

  • Computing the set of transitive dependencies for a pod target, even if the target is scoped, will no longer smash the stack.
    Samuel Giddins #4092

  • Take into account a specification's exclude_files when constructing resource bundles.
    Samuel Giddins #4065

  • Fix resolving to platform-compatible versions of transitive dependencies.
    Samuel Giddins #4084

0.39.0.beta.3 (2015-08-28)

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

0.39.0.beta.2 (2015-08-27)

Bug Fixes

0.39.0.beta.1 (2015-08-26)

Bug Fixes

0.38.2 (2015-07-25)

Bug Fixes

0.38.1 (2015-07-23)

  • Set project, dylib, and compatibility versions when building pods as frameworks.
    Marius Rackwitz

  • Pods integrated as static libraries can now be imported as modules.
    Tomas Linhart #3874

Bug Fixes
  • Ensure the aggregate .xcconfig file only has the settings for the appropriate build configuration.
    Samuel Giddins #3842

  • Show the correct error when pod spec lint finds multiple podspecs, and at least one of them fails linting.
    Samuel Giddins #3869

  • Set header search paths properly on the user target when vendored_libraries Pods are used while integrating Pods as frameworks.
    Jonathan MacMillan #3857

  • Only link public headers in the sandbox for Pods that are not being built into dynamic frameworks, when integrating Pods as frameworks.
    Jonathan MacMillan #3867

  • Don't lock resource files, only source files.
    Mason Glidden #3557

  • Fix copying frameworks when integrating with today extensions.
    Samuel Giddins #3819

0.38.0 (2015-07-18)

  • Improve the message shown when trying to use Swift Pods without frameworks. Now it includes the offending Pods so that the user can take action to remove the Pods, if they don’t want to move to frameworks yet.
    Eloy Durán #3830
Bug Fixes

0.38.0.beta.2 (2015-07-05)

  • The resolver will now take supported platform deployment targets into account when resolving dependencies.
    Samuel Giddins #2443

  • Pods.xcodeproj will now be written with deterministic UUIDs, vastly reducing project churn and merge conflicts. This behavior can be disabled via the new COCOAPODS_DISABLE_DETERMINISTIC_UUIDS environment variable.
    Samuel Giddins

  • cocoapods-stats is now a default plugin.
    Samuel Giddins

Bug Fixes

0.38.0.beta.1 (2015-06-26)

Highlighted Enhancement That Needs Testing
  • De-duplicate Pod Targets: CocoaPods now recognizes when a dependency is used multiple times across different user targets, but needs to be built only once. The targets in Pods.xcodeproj need to be duplicated when one of the following applies:

    • They are used on different platforms.
    • They are used with differents sets of subspecs.
    • They have any dependency which needs to be duplicated.

    You can opt-out of this behavior installation-wise, by setting the following option in your ~/.cocoapods/config.yaml:

    deduplicate_targets: false

    Marius Rackwitz #3550

  • The CocoaPods environment header has been removed.
    Samuel Giddins #2390

  • The Installer is passed directly to the pre_install and post_install hooks defined in the Podfile, instead of the previously used Hooks::InstallerRepresentation.
    Marius Rackwitz #3648

  • Deprecate the xcconfig attribute in the Podspec DSL, which is replaced by the new attributes pod_target_xcconfig and user_target_xcconfig.
    Marius Rackwitz CocoaPods#3465

  • The notice about a new version being available will now include our recommendation of using the latest stable version.
    Hugo Tunius #3667

  • New commands pod cache list and pod cache clean allows you to see the contents of the cache and clean it.
    Olivier Halligon #3508

  • The download cache will automatically be reset when changing CocoaPods versions.
    Samuel Giddins #3542

  • Supports running pre-install hooks in plugins. This happens before the resolver does its work, and offers easy access to the sandbox, podfile and lockfile via a PreInstallHooksContext object. This also renames the post-install hooks from HooksContext to PostInstallHooksContext.
    Orta Therox #3540

  • Allow passing additional arguments to pod lib create, which then get passed as-is to the configure scripts.
    Samuel Giddins #2160

  • Use -analyzer-disable-all-checks to disable static analyzer for pods with inhibit_warnings enabled (requires Xcode >= 6.1).
    Dieter Komendera #2402

  • Cache globbing in PathList to speed up pod install.
    Vincent Isambart #3699

  • CocoaPods will validate your podfile and try to identify problems and conflicts in how you've specified the dependencies.
    Hugo Tunius #995

  • pod update will now accept root pod names, even when only subspecs are installed.
    Samuel Giddins #3689

  • Support for the new watchos platform.
    Boris Bügling #3681

Bug Fixes
  • Added recursive support to the public headers of vendored frameworks that are automatically linked in the sandbox. This fixes and issue for framework header directories that contain sub-directories.
    Todd Casey #3161

  • Public headers of vendored frameworks are now automatically linked in the sandbox. That allows transitive inclusion of headers from other pods.
    Vincent Isambart #3161

  • Fixes an issue that prevented static libraries from building. OTHER_LIBTOOLFLAGS is no longer set to the value of OTHER_LDFLAGS. If you want to create a static library that includes all dependencies for (internal/external) distribution then you should use a tool like cocoapods-packager.
    Michael Moscardini #2747 #2704

  • The embed frameworks script will now properly filter out symlinks to the directories that are filtered, which fixes an issue when submitting to the Mac App Store.
    Samuel Giddins

  • The error report template is now more robust against missing executables.
    Samuel Giddins #3719

  • Attempting to specify a git source where a Podspec for the requested pod is not found will have a more helpful error message.
    Samuel Giddins

  • pod outdated will now accept the --no-repo-update and --no-integrate options.
    Samuel Giddins

  • Fixes an issue which prevented using a custom CONFIGURATION_BUILD_DIR when integrating CocoaPods via dynamic frameworks.
    Tim Rosenblatt #3675

  • Pods frameworks in codesigned Mac apps are now signed.
    Nikolaj Schumacher #3646

0.37.2 (2015-05-27)

Bug Fixes

0.37.1 (2015-05-06)

Bug Fixes
  • [Cache] Fixes a bug that caused that a pod, which was cached once is not updated correctly when needed e.g. for pod spec lint.
    Marius Rackwitz #3498

  • Only add the "Embed Pods Frameworks" script for application and unit test targets.
    Marius Rackwitz #3440

  • C++ source files with .cc, .cxx and .c++ extensions now have their compiler flags set correctly.
    Chongyu Zhu Kyle Fuller

  • Handle broken symlinks when installing a Pod.
    Daniel Barden #3515

  • Just remove write permissions from files, so executables are unaffected.
    Mason Glidden #3501

  • Always copy the generated Podfile.lock to Pods/Manifest.lock so they are guaranteed to match, character-by-character, after installation.
    Samuel Giddins #3502

  • Don't generate an umbrella header when a custom module map is specified. This avoids an incomplete module map warning.
    Samuel Giddins

  • Actually allow skipping the download cache by downloading directly to the download target when requested.
    Samuel Giddins

0.37.0 (2015-05-03)

For more details, see 📝 CocoaPods 0.37 on our blog.

Bug Fixes

0.37.0.rc.2 (2015-04-30)

Bug Fixes
  • Handle caching specs that have subspecs with higher minimum deployment targets without deleting needed source files.
    Samuel Giddins #3471

  • Automatically detect JSON podspecs in pod lib lint.
    Samuel Giddins #3477

0.37.0.rc.1 (2015-04-27)

Core Xcodeproj

Bug Fixes
  • Adding $(inherited) to FRAMEWORK_SEARCH_PATHS build setting in xcconfig for aggregate.
    Tomohiro Kumagai #3429

  • Don't crash when the downloader can't find an appropriate podspec in a git pod.
    Samuel Giddins #3433

  • Automatically lock Pod source files after installing.
    Mason Glidden #1154

  • Handle subprocesses leaking STDOUT/STDERR pipes by more strictly managing process lifetime and not allowing I/O to block completion of the task.
    Samuel Giddins #3101

  • Do not create pod target if source_files only contains headers.
    Boris Bügling #3106

  • Run a pod's prepare_command (if it has one) before it is cleaned in the download cache.
    Marius Rackwitz Samuel Giddins #3436

  • Don't set the -fno-objc-arc compiler flags for files for which the flag makes no sense.
    Samuel Giddins #2559

  • Also apply a pod's configuration to any resource targets defined by the pod.
    Tom Adriaenssen #3463

0.37.0.beta.1 (2015-04-18)

  • Allow the specification of custom module map files.
    Samuel Giddins Marius Rackwitz #3145

  • Show the source URI for local Pod specification repositories in pod repo list.
    Kyle Fuller

  • Only show a warning when there is a minimum deployment target mismatch between target and spec, instead of throwing a hard error.
    Samuel Giddins #1241

  • Add download caching for pods, which speeds up pod install and linting, potentially by several orders of magnitude.
    Samuel Giddins #2863 #3172

  • Add a --fail-fast option to both pod spec lint and pod lib lint that causes the linter to exit as soon as a single subspec or platform fails linting.
    Marius Rackwitz

  • Naïvely prevent base xcconfig warnings for targets that have custom config files set.
    Chris Brauchli #2633

  • Ensure private headers are declared as such in a framework's generated module map.
    Samuel Giddins #2974

Bug Fixes
  • Do not pass code-sign arguments to xcodebuild when linting OS X targets.
    Boris Bügling #3310

  • Fixes an issue showing the URL to remote resources in pod repo list.
    Kyle Fuller

  • Fixes a problem with code signing when integrating CocoaPods into a Today Widget extension.
    Christian Sampaio #3390

0.36.4 (2015-04-16)

Bug Fixes
  • Fixes various problems with Pods that use xcasset bundles. Pods that use xcassets can now be used with the pod :path option.
    Kyle Fuller #1549 #3384 #3358

0.36.3 (2015-03-31)

Bug Fixes

0.36.2 (2015-03-31)


Bug Fixes

0.36.1 (2015-03-27)


Bug Fixes

(✻) Note: these fixes are only temporary to avoid overriding the user project's xcassets. We are aware that these workarounds are "too greedy" and thus user projects having different xcassets for different targets will still have issues; we (@AliSoftware) are working on a deeper fix (#3263) for the next release.

0.36.0 (2015-03-11)


For more details, see 📝 CocoaPods 0.36 on our blog.

  • Allows Swift pods to have a deployment target under iOS 8.0 if they use XCTest.
    Samuel Giddins #3225
Bug Fixes
  • Include Swift-specific build settings on target creation, i.e. disable optimizations for debug configuration. Marius Rackwitz #3238

  • Only copy explicitly specified xcasset files into the bundle of the integrated target.
    Marius Rackwitz #3219

  • Correctly filter Xcode warnings about the use of dynamic frameworks.
    Boris Bügling

  • Fixes warnings, when the aggregate target doesn't contain any pod target, which is build, because PODS_FRAMEWORK_BUILD_PATH was added to FRAMEWORK_SEARCH_PATHS, but never created.
    Marius Rackwitz #3217

  • Allows the usage of :head dependencies even when the most recent published version was a pre-release.
    Samuel Giddins #3212

  • Limit the check for transitive static binaries to those which are directly linked to the user target.
    Boris Bügling #3194

  • Lint to prevent dynamic libraries and frameworks from passing with iOS 7.
    Boris Bügling #3193

  • Shows an informative error message when there is no base specification found for a :head dependency.
    Samuel Giddins #3230

  • Fix the OTHER_SWIFT_FLAGS generated, so it inherits previous definitions.
    Daniel Thorpe #2983

0.36.0.rc.1 (2015-02-24)

  • Set the APPLICATION_EXTENSION_API_ONLY build setting if integrating with a watch extension target.
    Boris Bügling #3153

  • Build for iOS simulator only during validation. This allows validation without having provisioning profiles set up.
    Boris Bügling #3083 Swift#13

  • Explicitly inform the user to close existing project when switching to a workspace for the first time.
    Kyle Fuller #2996

  • Automatically detect conflicts between framework names.
    Samuel Giddins #2943

  • Use the proper TMPDIR for the CocoaPods process, instead of blindly using /tmp.
    Samuel Giddins

  • Let lint fail for Swift pods supporting deployment targets below iOS 8.0.
    Boris Bügling #2963

  • Reject installation if a static library is used as a transitive dependency while integrating Pods as frameworks.
    Samuel Giddins #2926

  • Do not copy Swift standard libraries multiple times.
    Boris Bügling #3131

  • Check for Xcode License Agreement before running commands.
    Xavi Matos #3002

  • pod update PODNAME will update pods in a case-insensitive manner.
    Samuel Giddins #2992

  • Allow specifying repo names to pod {spec,lib} lint --sources.
    Samuel Giddins #2685

  • Require explicit use of use_frameworks! for Pods written in Swift.
    Boris Bügling #3029

  • Lint as framework automatically. If needed, --use-libraries option allows linting as a static library.
    Boris Bügling #2912

  • Adding Xcode Legacy build location support for default Pods.xcodeproj. It defaults to ${SRCROOT}/../build but can be changed in a post_install hook by using the Project#symroot= writer.
    Sam Marshall

Bug Fixes
  • Set SKIP_INSTALL=YES for all generated targets to avoid producing Generic Xcode Archives on Archive.
    Marius Rackwitz #3188

  • Added support for .tpp C++ header files in specs (previously were getting filtered out and symlinks wouldn't get created in the Pods/Headers folder.)
    Honza Dvorsky #3129

  • Fixed installation for app-extension targets which had no dependencies configured in the Podfile.
    Boris Bügling #3102

  • Correct escaping of resource bundles in 'Copy Pods Resources' script.
    Seán Labastille #3082

  • Correctly update sources when calling pod outdated, and also respect the --[no-]repo-update flag.
    Samuel Giddins #3137

  • Fix the OTHER_SWIFT_FLAGS generated, so #if COCOAPODS works in Swift.
    Samuel Giddins #2983

  • Output a properly-formed Podfile when running pod init with a target that contains a ' in its name.
    Samuel Giddins #3136

  • Remove the stored lockfile checkout source when switching to a development pod.
    Samuel Giddins #3141

  • Migrate local Ruby podspecs to JSON, allowing updating those pods to work.
    Samuel Giddins #3038

  • Removing grep color markup in the embed frameworks script.
    Adriano Bonat #3117

  • Fixes an issue where pod ipc list and pod ipc podfile was returning an error.
    Kyle Fuller #3134

  • Fixes an issue with spaces in the path to the user's developer tools.
    Boris Bügling #3181

0.36.0.beta.2 (2015-01-28)


  • Changes the default spec repositories used from all configured spec repositories, to the master spec repository when no spec repositories are explicitly configured in a Podfile.
    Kyle Fuller #2946
  • Set the APPLICATION_EXTENSION_API_ONLY build setting if integrating with an app extension target.
    Boris Bügling #2980

  • Xcodebuild warnings will now be reported as warning during linting instead of note.
    Hugo Tunius

  • Copy only the resources required for the current build configuration.
    Samuel Giddins #2391

Bug Fixes
  • Ensure that linting fails if xcodebuild doesn't successfully build your Pod.
    Kyle Fuller #2981 cocoapods-trunk#33

  • Clone the master spec repository when no spec repositories are explicitly defined in the Podfile. This fixes problems using CocoaPods for the first time without any explicit spec repositories.
    Kyle Fuller #2946

  • Xcodebuild warnings with the string error in them will no longer be linted as errors if they are in fact warnings.
    Hugo Tunius #2579

  • Any errors which occur during fetching of external podspecs over HTTP will now be gracefully handled.
    Hugo Tunius #2823

  • When updating spec repositories only update the git sourced repos.
    Dustin Clark #2558

  • Pods referenced via the :podspec option will have their podspecs properly parsed in the local directory if the path points to a local file.
    Samuel Giddins

  • Fix an issue where using Swift frameworks in an Objective-C host application causes an error because the Swift frameworks we're not code signed.
    Joseph Ross #3008

0.36.0.beta.1 (2014-12-25)


Highlighted Enhancement That Needs Testing
  • Support Frameworks & Swift: CocoaPods now recognizes Swift source files and builds dynamic frameworks when necessary. A project can explicitly opt-in via use_frameworks! in the Podfile, or if any dependency contains Swift code, all pods for that target will be integrated as frameworks.

    As a pod author, you can change the module name of the built framework by specifying a module_name in the podspec. The built frameworks are embedded into the host application with a new shell script build phase in the user's project allowing configuration-dependent pods.

    Marius Rackwitz #2835

  • Bundle Resources into Frameworks: Previously all resources were compiled and copied into the mainBundle. Now Pods have to use [NSBundle bundleForClass:<#Class from Pod#>] to access provided resources relative to the bundle.

    Boris Bügling #2835

  • Only the hooks specified by usage of the plugin directive of the Podfile will be run. Additionally, plugins that depend on hooks will have to update to specify their 'plugin name' when registering the hooks in order to make it possible for those hooks to be run.
    Samuel Giddins #2640

  • Do not generate targets for Pods without sources.
    Boris Bügling #2918

  • Show the name of the source for each hook that is run in verbose mode.
    Samuel Giddins #2639

  • Move pods' private headers to Headers/Private from Headers/Build. Since some SCM ignore templates include build by default, this makes it easier to check in the Pods/ directory.
    Samuel Giddins #2623

  • Validate that a specification's public_header_files and private_header_files file patterns only match header files. Also, validate that all file patterns, if given, match at least one file.
    Samuel Giddins #2914

  • Installer changed to organize a development pod's source and resource files into subgroups reflecting their organization in the filesystem.
    Imre mihaly

Bug Fixes
  • Fix updating a pod that has subspec dependencies.
    Samuel Giddins #2879

  • Restore the #defines in the environment header when the --no-integrate installation option is used.
    Samuel Giddins #2876

  • Fix issues when trying to discover the xcodeproj automatically but the current path contains special characters ([,],{,},*,?).
    Olivier Halligon #2852

  • Fix linting subspecs that have a higher deployment target than the root spec.
    Samuel Giddins #1919

  • Fix the reading of podspecs that come from the :git, :svn, :http, or :hg options in your Podfile that used context-dependent ruby code, such as reading a file to determine the specification version.
    Samuel Giddins #2875

  • Fix the updating of :git, :svn, and :hg dependencies when updating all pods.
    Samuel Giddins #2859

  • Fix an issue when a user doesn't yet have any spec repositories configured.
    Boris Bügling

  • Fix an issue updating repositories when another spec repository doesn't have a remote.
    Kyle Fuller #2965

0.35.0 (2014-11-19)


For more details, see 📝 CocoaPods 0.35 on our blog.

  • Allow the specification of file patterns for the Podspec's requires_arc attribute.
    Kyle Fuller Samuel Giddins #532

  • From now on, pods installed directly from their repositories will be recorded in the Podfile.lock file and will be guaranteed to be checked-out using the same revision on subsequent installations. Examples of this are when using the :git, :svn, or :hg options in your Podfile.
    Samuel Giddins #1058

Bug Fixes
  • Fix an output formatting issue with various commands like pod search and pod trunk. Olivier Halligon #2603

  • Show a helpful error message if the old resolver incorrectly activated a pre-release version that now leads to a version conflict.
    Samuel Giddins

  • Provides a user friendly message when using pod spec create with a repository that doesn't yet have any commits.
    Kyle Fuller #2803

  • Fixes an issue with integrating into projects where there is a slash in the build configuration name.
    Kyle Fuller #2767

  • Pods will use CLANG_ENABLE_OBJC_ARC = 'YES' instead of CLANG_ENABLE_OBJC_ARC = 'NO'. For pods with requires_arc = false the -fno-objc-arc flag will be specified for the all source files.
    Hugo Tunius #2262

  • Fixed an issue that Core Data mapping models where not compiled when copying resources to main application bundle.
    Yan Rabovik

  • Fix uninitialized constant Class::YAML crash in some cases. Tim Shadel

  • pod search, pod spec which, pod spec cat and pod spec edit now use plain text search by default instead of a regex. Especially pod search UIView+UI now searches for pods containing exactly UIView+UI in their name, not trying to interpret the + as a regular expression. Note: You can still use a regular expression with the new --regex flag that has been added to these commands, e.g. pod search --regex "(NS|UI)Color". Olivier Halligon Core#188

  • Use --allow-warnings rather than --error-only for pod spec validation Daniel Tomlinson #2820

0.35.0.rc2 (2014-11-06)

  • Allow the resolver to fail faster when there are unresolvable conflicts involving the Lockfile.
    Samuel Giddins
Bug Fixes

0.35.0.rc1 (2014-11-02)

Highlighted Enhancements That Need Testing
  • The Resolver has been completely rewritten to use Molinillo, an iterative dependency resolution algorithm that automatically resolves version conflicts. The order in which dependencies are declared in the Podfile no longer has any effect on the resolution process.

    You should ensure that pod install, pod update and pod update [NAME] work as expected and install the correct versions of your pods during this RC1 release. Samuel Giddins #978 #2002

  • Support for older versions of Ruby has been dropped and CocoaPods now depends on Ruby 2.0.0 or greater. This is due to the release of Xcode 6.0 which has dropped support for OS X 10.8, which results in the minimum version of Ruby pre-installed on OS X now being 2.0.0.

    If you are using a custom installation of Ruby older than 2.0.0, you will need to update. Or even better, migrate to system Ruby.
    Kyle Fuller

  • Attempts to resolve circular dependencies will now raise an exception.
    Samuel Giddins Molinillo#6

  • The use of implicit sources has been un-deprecated. By default, all available spec-repos will be used. There should only be a need to specify explicit sources if you want to specifically exclude certain spec-repos, such as the master spec-repo, if you want to declare the order of spec look-up precedence, or if you want other users of a Podfile to automatically have a spec-repo cloned on pod install.
    Eloy Durán

  • The pod push command has been removed as it has been deprecated in favour of pod repo push in CocoaPods 0.33.
    Fabio Pelosin

  • Refactorings in preparation to framework support, which could break usage of the Hooks API.
    Marius Rackwitz #2461

  • Implicit dependencies are now locked, so simply running pod install will not cause them to be updated when they shouldn't be.
    Samuel Giddins #2318 #2506

  • Pre-release versions are only considered in the resolution process when there are dependencies that explicitly reference pre-release requirements.
    Samuel Giddins #1489

  • Only setup the master specs repo if required.
    Daniel Tomlinson #2562

  • Sandbox::FileAccessor now optionally includes expanded paths of headers of vendored frameworks in public_headers.
    Eloy Durán #2722

  • Analysis is now halted and the user informed when there are multiple different external sources for dependencies with the same root name. The user is also now warned when there are duplicate dependencies in the Podfile.
    Samuel Giddins #2738

  • Multiple subspecs that point to the same external dependency will now only cause that external source to be fetched once.
    Samuel Giddins #2743

Bug Fixes
  • Fixes an issue in the XCConfigIntegrator where not all targets that need integration were being integrated, but were getting incorrect warnings about the user having specified a custom base configuration.
    Eloy Durán 2752

  • Do not try to clone spec-repos in /.
    Eloy Durán #2723

  • Improved sanitizing of configuration names which have a numeric prefix.
    Steffen Matthischke #2700

  • Fixes an issues where headers from a podspec with one platform are exposed to targets with a different platform. The headers are now only exposed to the targets with the same platform.
    Michael Melanson Kyle Fuller #1249

0.34.4 (2014-10-18)

Bug Fixes
  • Fixes a crash when running pod outdated.
    Samuel Giddins #2624

  • Ensure that external sources (as specified in the Podfile) are downloaded when their source is missing, even if their specification is present.
    Samuel Giddins #2494

  • Fixes an issue where running pod install/update while the Xcode project is open can cause the open project to have build failures until Xcode is restarted.
    Kyle Fuller #2627 #2665

  • Fixes a crash when using file URLs as a source.
    Kurry Tran #2683

  • Fixes an issue when using pods in static library targets and building with Xcode 6 which requires OTHER_LIBTOOLFLAGS instead of OTHER_LDFLAGS, thus basically reverting to the previous Xcode behaviour, for now at least.
    Kyle Fuller Eloy Durán #2666

  • Fixes an issue running the resources script when Xcode is installed to a directory with a space when compiling xcassets.
    Kyle Fuller #2684

  • Fixes an issue when installing Pods with resources to a target which doesn't have any resources.
    Kyle Fuller #2083

  • Ensure that git 1.7.5 or newer is installed when running pod.
    Kyle Fuller #2651

0.34.2 (2014-10-08)

  • Make the output of pod outdated show what running pod update will do. Takes into account the sources specified in the Podfile.
    Samuel Giddins #2470

  • Allows the use of the GCC_PREPROCESSOR_DEFINITION flag ${inherited} without emitting a warning.
    Samuel Giddins #2577

  • Integration with user project will no longer replace an existing base build configuration.
    Robert Jones #1736

Bug Fixes
  • Improved sanitizing of configuration names to avoid generating invalid preprocessor definitions.
    Boris Bügling #2542

  • More robust generation of source names from URLs.
    Samuel Giddins #2534

  • Allow the Validator to only use specific sources. Allows customizable source for pod spec lint and pod lib lint, with both defaulting to master. Samuel Giddins #2543 cocoapods-trunk#28

  • Takes into account the sources specified in Podfile running pod outdated.
    Samuel Giddins #2553

  • Ensures that the master repo is shallow cloned when added via a Podfile source directive.
    Samuel Giddins #3586

  • Ensures that the user project is not saved when there are no user targets integrated.
    Samuel Giddins #2561 #2593

  • Fix a crash when running pod install with an empty target that inherits a pod from a parent target.
    Kyle Fuller #2591

  • Take into account versions of a Pod from all specified sources when resolving dependencies.
    Thomas Visser #2556

  • Sanitize build configuration names in target environment header macros.
    Kra Larivain #2532

0.34.1 (2014-09-26)

Bug Fixes
  • Doesn't take into account the trailing .git in repository URLs when trying to find a matching specs repo.
    Samuel Giddins #2526

0.34.0 (2014-09-26)

For more details, see 📝 CocoaPods 0.34 on our blog.

  • Add support for loading podspecs from only specific spec-repos via sources. By default, when there are no sources specified in a Podfile all source repos will be used. This has always been the case. However, this implicit use of sources is now deprecated. Once you specify specific sources, no repos will be included by default. For example:

      source ''
      source ''

    Any source URLs specified that have not yet been added will be cloned before resolution begins.
    François Benaiteau Fabio Pelosin Samuel Giddins #1143 Core#19 Core#170 #2515

  • Added the pod repo list command which lists all the repositories.
    Luis Ascorbe #1455
Bug Fixes
  • Works around an Xcode issue where linting would fail even though xcodebuild actually succeeds. also doesn't fail when this issue occurs, so it's safe for us to do the same.
    Kra Larivain Boris Bügling Eloy Durán Samuel E. Giddins #2394 #2395

  • Fixes the detection of JSON podspecs included via :path.
    laiso #2489

  • Fixes an issue where pod install would crash during Plist building if any pod has invalid UTF-8 characters in their title or description.
    Ladislav Martincik #2482

  • Fix crash when the URL of a private GitHub repo is passed to pod spec create as an argument.
    Fabio Pelosin #1543

0.34.0.rc2 (2014-09-16)

Bug Fixes
  • Fixes an issue where pod lib lint would crash if a podspec couldn't be loaded.
    Kyle Fuller #2147

  • Fixes an issue where pod init would not add source 'master' to newly created Podfiles.
    Ash Furrow #2473

0.34.0.rc1 (2014-09-13)

  • The use of the $PODS_ROOT environment variable has been deprecated and should not be used. It will be removed in future versions of CocoaPods.

  • Add support for loading podspecs from specific spec-repos only, a.k.a. ‘sources’. By default, when not specifying any specific sources in your Podfile, the ‘master’ spec-repo will be used, as was always the case. However, once you specify specific sources the ‘master’ spec-repo will not be included by default. For example:

      source 'private-spec-repo'
      source 'master'

    François Benaiteau Fabio Pelosin #1143 Core#19

  • The Pods directory has been reorganized. This might require manual intervention in projects where files generated by CocoaPods have manually been imported into the user's project (common with the acknowledgements files).
    #1055 Fabio Pelosin Michele Titolo

  • Plugins are now expected to include the cocoapods-plugin.rb file in ./lib.
    Fabio Pelosin CLAide#28

  • The specification requires_arc attribute now defaults to true.
    Fabio Pelosin CocoaPods#267

  • Add support to specify dependencies per build configuration:

      pod 'Lookback', :configurations => ['Debug']

    Currently configurations can only be specified per single Pod.
    Joachim Bengtsson Eloy Durán Fabio Pelosin #1791 #1668 #731

  • Improved performance of git downloads using shallow clone.
    Marin Usalj Fabio Pelosin cocoapods-downloader#29

  • Simplify installation: CocoaPods no longer requires the compilation of the troublesome native extensions.
    Fabio Pelosin Xcodeproj#168 Xcodeproj#167

  • Add hooks for plugins. Currently only the installer hook is supported. A plugin can register itself to be activated after the installation with the following syntax:

    Pod::HooksManager.register(:post_install) do |installer_context|
      # implementation

    The installer_context is an instance of the Pod::Installer:HooksContext class which provides the information about the installation.
    Fabio Pelosin Core#132

  • Add a support for migrating the sandbox to new versions of CocoaPods.
    Fabio Pelosin

  • Display an indication for deprecated Pods in the command line search.
    Hugo Tunius #2180

  • Use the CLIntegracon gem for the integration tests.
    Marius Rackwitz #2371

  • Include configurations that a user explicitly specifies, in their Podfile, when the --no-integrate option is specified.
    Eloy Durán

  • Properly quote the -isystem values in the xcconfig files.
    Eloy Durán

  • Remove the installation post install message which presents the CHANGELOG.
    Fabio Pelosin Eloy Durán

  • Add support for user-specified project directories with the --project-directory option.
    Samuel E. Giddins #2183

  • Now the plutil tool is used when available to produce output consistent with Xcode.
    Fabio Pelosin

  • Indicate the name of the pod whose requirements cannot be satisfied.
    Seivan Heidari Fabio Pelosin #1938

  • Add support for JSON specs to external sources (:path, :git, etc) options.
    Kyle Fuller #2320

  • Generate the workspaces using the same output of Xcode.
    Fabio Pelosin

Bug Fixes

0.33.1 (2014-05-20)

Bug Fixes

0.33.0 (2014-05-20)

For more details, see 📝 CocoaPods 0.33 on our blog.

  • The deprecated pre_install and the pod_install hooks of the specification class have been removed.
    Fabio Pelosin #2151 #2153
  • Added the cocoapods-trunk plugin which introduces the trunk subcommand.
    Fabio Pelosin #2151 #2153

  • The pod push sub-command has been moved to the pod repo push sub-command. Moreover pushing to the master repo from it has been disabled.
    Fabio Pelosin #2151 #2153

  • Overhauled command line interface. Add support for auto-completion script (d). If auto-completion is enabled for your shell you can configure it for CocoaPods with the following command:

    rm -f /usr/local/share/zsh/site-functions/\_pod
    dpod --completion-script > /usr/local/share/zsh/site-functions/\_pod
    exec zsh

    Currently only the Z shell is supported.
    Fabio Pelosin CLAide#25 CLAide#20 CLAide#19 CLAide#17 CLAide#12

  • The --version flag is now only supported for the root pod command. If used in conjunction with the --verbose flag the version of the detected plugins will be printed as well.
    Fabio Pelosin CLAide#13 CLAide#14

  • The extremely meta cocoaPods-plugins is now installed by default providing information about the available and the installed plug-ins.
    David Grandinetti Olivier Halligon Fabio Pelosin #2092

  • Validate the reachability of social_media_url, documentation_url and docset_url in podspecs we while linting a specification.
    Kyle Fuller #2025

  • Print the current version when the repo/lockfile requires a higher version.
    Samuel E. Giddins #2049

  • Show help when running the pod command instead of defaulting to pod install.
    Kyle Fuller #1771

Bug Fixes

0.32.1 (2014-04-15)

Bug Fixes

0.32.0 (2014-04-15)


For more details, see 📝 CocoaPods 0.32 on our blog.

Bug Fixes

0.31.1 (2014-04-01)


Minor Enhancements
  • The specification now strips the indentation of the prefix_header and prepare_command to aide their declaration as a here document (similarly to what it already does with the description).
    Fabio Pelosin Core#51
Bug Fixes

0.31.0 (2014-03-31)


For more details, see 📝 CocoaPods 0.31 on our blog.

Bug Fixes

0.30.0 (2014-03-29)


For more details, see 📝 CocoaPods 0.30 on our blog.

  • Radically reduce first run pod setup bandwidth by creating a shallow clone of the ‘master’ repo by default. Use the --no-shallow option to perform a full clone instead.
    Jeff Verkoeyen #1803

  • Improves the error message when searching with an invalid regular expression.
    Kyle Fuller

  • Improves pod init to save Xcode project file in Podfile when one was supplied.
    Kyle Fuller

  • Adds functionality to specify a template URL for the pod lib create command.
    Piet Brauer

Bug Fixes
  • Fixes a bug with pod repo remove silently handling permission errors.
    Kyle Fuller #1778

  • pod push now properly checks that the repo has changed before attempting to commit. This only affected pods with special characters (such as +) in their names.
    Gordon Fontenot #1739

0.29.0 (2013-12-25)


For more details, see 📝 CocoaPods 0.29 on our blog.

  • The command podfile_info is now a plugin offered by CocoaPods. As a result, the command has been removed from CocoaPods.
    Joshua Kalpin #1589

  • JSON has been adopted as the format to store specifications. As a result the pod ipc spec command returns a JSON representation and the YAML specifications are not supported anymore. JSON specifications adopt the .podspec.json extension. Fabio Pelosin #1568

  • Introduced pod try the easiest way to test the example project of a pod.
    Fabio Pelosin #1568

  • Pod headers are now provided to the user target as a system header. This means that any warnings in a Pod's code will show under its target in Xcode's build navigator, and never under the user target.
    Swizzlr #1596

  • Support LZMA2 compressed tarballs in the downloader.
    Kyle Fuller cocoapods-downloader#5

  • Add Bazaar support for installing directly from a repo.
    Fred McCann #1632

  • The pod search <query> command now supports regular expressions for the query parameter when searching using the option --full.
    Florian Hanke #1643

  • Pod lib lint now accepts multiple podspecs in the same folder.
    kra Larivain/OpenTable #1635

  • The pod push command will now silently test the upcoming CocoaPods trunk service. The service is only tested when pushing to the master repo and the test doesn't affect the normal workflow.
    Fabio Pelosin

  • The pod search <query> command now supports searching on when searching using the option --web. Options --ios and --osx are fully supported. Florian Hanke #1643

  • The pod search <query> command now supports multiword queries when using the --web option. Florian Hanke #1643

Bug Fixes
  • Fixed a bug which resulted in pod lib lint not being able to find the headers.
    Fabio Pelosin #1566

  • Fixed the developer frameworks search paths so that $(SDKROOT)/Developer/Library/Frameworks is used for iOS and $(DEVELOPER_LIBRARY_DIR)/Frameworks is used for OS X.
    Kevin Wales #1562

  • When updating the pod repos, repositories with unreachable remotes are now ignored. This fixes an issue with certain private repositories.
    Joshua Kalpin #1595 #1571

  • The linter will now display an error if a Pod's name contains whitespace.
    Joshua Kalpin Core#39 #1610

  • Having the silent flag enabled in the config will no longer cause issues with pod search. In addition, the flag --silent is no longer supported for the command.
    Joshua Kalpin #1627

  • The linter will now display an error if a framework ends with .framework (i.e. QuartzCore.framework).
    Joshua Kalpin #1331 Core#45

  • The linter will now display an error if a library ends with .a or .dylib (i.e. z.dylib). It will also display an error if it begins with lib (i.e. libxml).
    Joshua Kalpin Core#44

  • The ARCHS build setting can come back as an array when more than one architecture is specified.
    Carson McDonald #1628

  • Fixed all issues caused by /tmp being a symlink to /private/tmp. This affected mostly pod lib lint, causing it to fail when the Pod used prefix_header_* or when the pod headers imported headers using the namespaced syntax (e.g. #import <MyPod/Header.h>).
    kra Larivain/OpenTable #1514

  • Fixed an incorrect path being used in the example app Podfile generated by pod lib create. Eloy Durán cocoapods-try#5

0.28.0 (2013-11-14)


For more details, see 📝 CocoaPods 0.28 on our blog.

  • CLAide now supports gem plugins. An example CocoaPods plugin can be found at open_pod_bay.

    As of yet there are no promises made yet on the APIs, so try to fail as gracefully as possible in case a CocoaPods update breaks your usage. In these cases, also please let us know what you would need, so we can take this into account when we do finalize APIs.

    Les Hill CLAide#1 #959

Bug Fixes
  • Compiling xcassets with actool now uses UNLOCALIZED_RESOURCES_FOLDER_PATH instead of PRODUCT_NAME.WRAPPER_EXTENSION as output directory as it is more accurate and allows the project to overwrite WRAPPER_NAME.
    Marc Knaup #1556

  • Added a condition to avoid compiling xcassets when WRAPPER_EXTENSION is undefined, as it would be in the case of static libraries. This prevents trying to copy the compiled files to a directory that does not exist.
    Noah McCann #1521

  • Added additional condition to check if actool is available when compiling xcassets. This prevents build failures of Xcode 5 projects on Travis CI (or lower Xcode versions).
    Michal Konturek #1511

  • Added a condition to properly handle universal or mac apps when compiling xcassets. This prevents build errors in the xcassets compilation stage particularly when using xctool to build.
    Ryan Marsh #1594

  • Vendored Libraries now correctly affect whether a podspec is considered empty.
    Joshua Kalpin Core#38

  • Vendored Libraries and Vendored Frameworks now have their paths validated correctly.
    Joshua Kalpin #1567

  • Gists are now correctly accepted with https.
    Joshua Kalpin Core#38

  • The pod push command is now more specific about the branch it pushes to.
    orta #1561

  • Dtrace files are now properly left unflagged when installing, regardless of configuration.
    Swizzlr #1560

  • Users are now warned if their terminal encoding is not UTF-8. This fixes an issue with a small percentage of pod names that are incompatible with ASCII.
    Joshua Kalpin #1570

0.27.1 (2013-10-24)


For more details, see 📝 CocoaPods 0.27 and improved installation UX on our blog.

  • The xcodeproj gem now comes bundled with prebuilt binaries for the Ruby versions that come with OS X 10.8 and 10.9. Users now no longer need to install the Xcode Command Line Tools or deal with the Ruby C header location.
    Eloy Durán Xcodeproj#88

  • Targets passed to the link_with method of the Podfile DSL no longer need to be explicitly passed as an array. link_with ['target1', 'target2'] can now be written as link_with 'target1', 'target2'.
    Adam Sharp Core#30

  • The copy resources script now compiles xcassets resources.
    Ulrik Damm #1427

  • pod repo now support a remove ['repo_name'] command.
    Joshua Kalpin #1493 #1484

Bug Fixes
  • The architecture is now set in the build settings of the user build configurations.
    Fabio Pelosin #1450 #1462

  • Fixed a crash related to CocoaPods being unable to resolve an unique build setting of an user target with custom build configurations.
    Fabio Pelosin #1462 #1463 #1457

  • Fixed a defect which prevented subspecs from being dependant on a pod with a name closely matching the name of one of the subspec's parents.
    Noah McCann #29

  • The developer dir relative to the SDK is not added anymore if testing frameworks are detected in OS X targets, as it doesn't exists, avoiding the presentation of the relative warning in Xcode.
    Fabio Pelosin

0.26.2 (2013-10-09)


Bug Fixes
  • Fixed a crash which was causing a failure in pod lib create if the name of the Pod included spaces. As spaces are not supported now this is gracefully handled with an informative message.
    Kyle Fuller #1456

  • If an user target doesn't specify an architecture the value specified for the project is used in CocoaPods targets.
    Fabio Pelosin #1450

  • The Pods project now properly configures ARC on all build configurations.
    Fabio Pelosin #1454

0.26.1 (2013-10-08)


For more details, see 📝 CocoaPods 0.26 on our blog.

  • CocoaPods now creates and hides the schemes of its targets after every installation. The schemes are not shared because the flag which keeps track whether they should be visible is a user only flag. The schemes are still present and to debug a single Pod it is possible to make its scheme visible in the Schemes manager of Xcode. This is rarely needed though because the user targets trigger the compilation of the Pod targets.
    Fabio Pelosin #1185

  • Installations which don't integrate a user target (lint subcommands and --no-integrate option) now set the architecture of OS X Pod targets to $(ARCHS_STANDARD_64_BIT) (Xcode 4 default value for new targets). This fixes lint issues with Xcode 4.
    Fabio Pelosin #1185

  • Further improvements to the organization of the Pods project

    • The project is now is sorted by name with groups at the bottom.
    • Source files are now stored in the root group of the spec, subspecs are not stored in a Subspec group anymore and the products of the Pods all are stored in the products group of the project.
    • The frameworks are referenced relative to the Developer directory and namespaced per platform.

    Fabio Pelosin #1389 #1420

  • Added the documentation_url DSL attribute to the specifications.
    Fabio Pelosin #1273

Bug Fixes
  • The search paths of vendored frameworks and libraries now are always specified relatively.
    Fabio Pelosin #1405

  • Fix an issue where CocoaPods would fail to work when used with an older version of the Active Support gem. This fix raises the dependency version to the earliest compatible version of Active Support.
    Kyle Fuller #1407

  • CocoaPods will not attempt to load anymore all the version of a specification preventing crashes if those are incompatible.
    Fabio Pelosin #1272

0.25.0 (2013-09-20)


  • Added support for Xcode 5.

    The generated Pods Xcode project is now compatible with arm64 projects and is updated to use Xcode 5’s default settings removing all warnings.

    NOTE to users migrating projects from Xcode 4, or are still using Xcode 4:

    1. The Pods Xcode project now sets the ONLY_ACTIVE_ARCH build setting to YES in the Debug configuration. You will have to set the same on your project/target, otherwise the build will fail.
    2. Ensure your project/target has an ARCHS value set, otherwise the build will fail.
    3. When building a iOS project from the command-line, with the xcodebuild tool that comes with Xcode 4, you’ll need to completely disable this setting by appending to your build command: ONLY_ACTIVE_ARCH=NO.


  • Speed up project generation in pod install and pod update.

  • The pre and post install hooks that have been deprecated now include the name and version of the spec that’s using them.

Bug Fixes
  • Only create a single resource bundle for all targets. Prior to this change a resource bundle included into multiple targets within the project would create duplicately named targets in the Pods Xcode project, causing duplicately named Schemes to be created on each invocation of pod install. All targets that reference a given resource bundle now have dependencies on a single common target.

    Blake Watters #1338

  • Solved outstanding issues with CocoaPods resource bundles and Archive builds:

    1. The rsync task copies symlinks into the App Bundle, producing an invalid app. This change add --copy-links to the rsync invocation to ensure the target files are copied rather than the symlink.
    2. The Copy Resources script uses TARGET_BUILD_DIR which points to the App Archiving folder during an Archive action. Switching to BUILT_PRODUCTS_DIR instead ensures that the path is correct for all actions and configurations.

    Blake Watters #1309 #1329

  • Ensure resource bundles are copied to installation location on install actions Chris Gummer #1364

  • Various bugfixes in Xcodeproj, refer to its CHANGELOG for details.

0.24.0 (2013-09-04)


  • Added pod init command which generates a Podfile according to the targets of the project stored in the working directory and to the templates stored in the ~/.cocoapods/templates folder. Two templates are supported:

    • the Podfile.default template for regular targets.
    • and the Podfile.test template for test targets. Ian Ynda-Hummel #1106 #1045
  • CocoaPods will now leverage the xcproj command line tool if available in the path of the user to touch saved projects. This will result in projects being serialized in the exact format used by Xcode eliminating merge conflicts and other related issues. To learn more about how to install xcproj see its readme. Cédric Luthi #1275

  • Rationalized and cleaned up Pods project group structure and path specification.

  • Create all necessary build configurations for Pods.xcodeproj at the project level. If the user’s project has more than just Debug and Release build configurations, they may be explicitly specified in the Podfile:
    xcodeproj 'MyApp', 'App Store' => :release, 'Debug' => :debug, 'Release' => :release
    If build configurations aren’t specified in the Podfile then they will be automatically picked from the user’s project in Release mode.
    These changes will ensure that the libPods.a static library is not stripped for all configurations, as explained in #1217.
    Cédric Luthi

  • Added basic support for Bazaar repositories.
    Fred McCann

Bug Fixes
  • Fixed crash in pod spec cat.

  • Use the TARGET_BUILD_DIR environment variable for installing resource bundles.
    Cédric Luthi

  • CoreData versioned models are now properly handled respecting the contents of the .xccurrentversion file.
    #1288, Xcodeproj#83

  • OS X frameworks are now copied to the Resources folder using rsync to properly overwrite existing files.
    Nikolaj Schumacher

  • User defined build configurations are now added to the resource bundle targets.

0.23.0 (2013-08-08)

0.23.0.rc1 (2013-08-02)


  • Added prepare_command attribute to Specification DSL. The prepare command will replace the pre_install hook. The post_install hook has also been deprecated. #1247

    The reason we provided Ruby hooks at first, was because we wanted to offer the option to make any required configuration possible. By now, however, we have a pretty good idea of the use-cases and are therefore locking down the freedom that was once available. In turn, we’re adding attributes that can replace the most common use-cases. (See the enhancements directly following this entry for more info).

    The second reason we need to lock this down is because this is the last remaining obstacle to fully serialize specifications, which we need in order to move to a ‘spec push’ web-service in the future.

  • Added resource_bundles attribute to the Specification DSL.
    #743 #1186

  • Added vendored_frameworks attribute to the Specification DSL.
    #809 #1075

  • Added vendored_libraries attribute to the Specification DSL.
    #809 #1075

  • Restructured .cocoapods folder to contain repos in a subdirectory.
    Ian Ynda-Hummel #1150

  • Improved pod spec create template.

  • Added copy&paste-friendly dependency to pod search.

  • Improved performance of the installation of Pods with git sources which specify a tag.

  • Core Data xcdatamodeld files are now properly referenced from the Pods project.

  • Removed punctuation check from the specification validations.

  • Deprecated the documentation attribute of the Specification DSL.

Bug Fixes

0.22.3 (2013-07-23)


  • Add support for .xcdatamodel resource files (in addition to .xcdatamodeld). #1201
Bug Fixes
  • Always exlude USE_HEADERMAP from the user’s project. #1216

  • Use correct template repo when using the pod lib create command. #1214

  • Fixed issue with pod push failing when the podspec is unchanged. It will now report [No change] ExamplePod (0.1.0) and continue to push other podspecs if they exist. #1199

  • Set STRIP_INSTALLED_PRODUCT = NO in the generated Pods project. This allows Xcode to include symbols from CocoaPods in dSYMs during Archive builds. #1217

  • Ensure the resource script doesn’t fail due to the resources list file not existing when trying to delete it. #1198

  • Fix handling of spaces in paths when compiling xcdatamodel(d) files. #1201

0.22.2 (2013-07-11)


  • The build settings of the Pods project and of its target have been updated to be in line with the new defaults of the future versions of Xcode.
Bug fixes
  • Specifications defining build setting with the [*] syntax are now properly handled. #1171

  • The name of the files references are now properly set fixing a minor regression introduced by CocoaPods 0.22.1 and matching more closely Xcode behaviour.

  • The validator now builds the Pods target instead of the first target actually performing the validation.

  • Build settings defined through the xcconfig attribute of a podspec are now stripped of duplicate values when merged in an aggregate target. #1189

0.22.1 (2013-07-03)


Bug fixes
  • Fixed a crash related to target dependencies and subspecs. #1168

0.22.0 (2013-07-03)


  • Added the pod lib create subcommand which allows to create a new Pod adhering to the best practices. The template is still a bit primitive and we encourage users to provide feedback by submitting patches and issues to #850

  • Added the pod lib lint subcommand which allows to lint the Pod stored in the working directory (a pod spec in the root is needed). This subcommand is equivalent to the deprecated pod spec lint --local. #850

  • The dependencies of the targets of the Pods project are now made explicit. #1165

  • The size of the cache used for the git repos is now configurable. For more details see #1159

  • The copy resources shell script now aborts if any error occurs. #1098

  • The output of shell script build phases no longer includes environment variables to reduce noise. #1122

  • CocoaPods no longer sets the deprecated ALWAYS_SEARCH_USER_PATHS build setting.

Bug fixes
  • Pods whose head state changes now are correctly detected and reinstalled. #1160

  • Fixed the library reppresentation of the hooks which caused issues with the #copy_resources_script_path method. #1157

  • Frameworks symlinks are not properly preserved by the copy resources script. Thanks to Thomas Dohmke (ashtom) for the fix. #1063

0.21.0 (2013-07-01)


Bug fixes
  • Fixed a linter issue related to the dedicated targets change. #1130

  • Fixed xcconfig issues related to Pods including a dot in the name. #1152

0.21.0.rc1 (2013-06-18)


  • Pods are now built in dedicated targets. This enhancement isolates the build environment of each Pod from other ones eliminating pollution issues. It also introduces an important architectural improvement which lays the foundation for the upcoming CocoaPods features. Stay tuned! This feature has been implemented by Jeremy Slater. #1011 #983 #841

  • Reduced external dependencies and deprecation of Rake::FileList. #1080

Bug fixes
  • Fixed crash due to Podfile.lock containing multiple version requirements for a Pod. #1076

  • Fixed a build error due to the copy resources script using the same temporary file for multiple targets. #1099

0.20.2 (2013-05-26)


Bug fixes
  • Ensure that, in a sandbox-pod env, RubyGems loads the CocoaPods gem on system Ruby (1.8.7). #939
  • Allow sandbox-pod to execute any tool inside the bundle.
  • Allow sandbox-pod to execute any tool inside a rbenv prefix.

0.20.1 (2013-05-23)


Bug fixes
  • Made sandbox-pod executable visible as it wasn't correctly configured in the gemspec.
  • Made sandbox-pod executable actually work when installed as a gem. (In which case every executable is wrapped in a wrapper bin script and the DATA constant can no longer be used.)
  • Required CLAide 0.3.2 as 0.3.0 didn't include all the files in the gemspec and 0.3.1 was not correctly processed by RubyGems.

0.20.0 (2013-05-23)


  • Introduces an experimental sandbox feature. #939

    Let’s face it, even though we have a great community that spends an amazing amount of time on curating the specifications, the internet can be a hostile place and the community is growing too large to take a naive approach any longer.

    As such, we have started leveraging OS X’s sandbox facilities to disallow unsanctioned operations. This is still very experimental and therefore has to be used explicitely, for now, but that does not mean we don’t want you to start using it and report issues.

    To use the sandbox, simply use the sandbox-pod command instead. E.g.:

      $ sandbox-pod install

    In case of issues, be sure to check /var/log/system.log for ‘deny’ messages. For instance, here’s an example where the sandbox denies read access to /:

      May 16 00:23:35 Khaos kernel[0]: Sandbox: ruby(98430) deny file-read-data /

    NOTE: The above example is actually one that we know of. We’re not sure yet which process causes this, but there shouldn’t be a need for any process to read data from the root path anyways.

    NOTE 2: At the moment the sandbox is not compatible with the :path option when referencing Pods that are not stored within the directory of the Podfile.

  • The naked pod command now defaults to pod install. #958

  • CocoaPods will look for the Podfile in the ancestors paths if one is not available in the working directory. #940

  • Documentation generation has been removed from CocoaPods as it graduated to CocoaDocs. This decision was taken because CocoaDocs is a much better solution which doesn't clutter Xcode's docsets while still allowing access to the docsets with Xcode and with Dash. Removing this feature keeps the installer leaner and easier to develop and paves the way for the upcoming sandbox. Private pods can use pre install hook to generate the documentation. If there will be enough demand this feature might be reintegrated as plugin (see #1037).

  • Improved performance of the copy resources script and thus build time of the integrated targets. Contribution by @onato #1050.

  • The changelog for the current version is printed after CocoaPods is installed/updated. #853.

Bug fixes
  • Inheriting inhibit_warnings per pod is now working #1032
  • Fix copy resources script for iOS < 6 and OS X < 10.8 by removing the --reference-external-strings-file flag. #1030
  • Fixed issues with the :head option of the Podfile. #1046 #1039

0.19.1 (2013-04-30)


Bug fixes
  • Project-level preprocessor macros are not overwritten anymore. #903
  • A Unique hash instances for the build settings of the Pods target is now created resolving interferences in the hooks. #1014

0.19.0 (2013-04-30)


  • Compile time introspection. Macro definitions which allow to inspect the installed Pods and their version have been introduced in the build environment of the Pod libraries (example).
  • CocoaPods now defines the COCOAPODS=1 macro in the Pod and the Client targets. This is useful for libraries which conditionally expose interfaces. #903
  • Added support for the private_header_files attribute of the Specification DSL. #998
  • CocoaPods now defines the deployment target of the Pods pro