CocoaPods Changelog

What's new in CocoaPods 1.2.0

Jan 23, 2018
  • Enhancements:
  • Show warning when Pod source uses unencrypted HTTP
  • Bug Fixes:
  • Do not include test spec resources and framework paths of dependent targets into test scripts
  • Restore development_pod_targets public method in installer
  • Fix resolution when multiple sources provide the same pods, and there are (potential) dependencies between the sources.
  • Ensure that externally-sourced (e.g. local & git) pods are allowed to resolve to pre-release versions.

New in CocoaPods 1.1.1 (Dec 27, 2016)

  • Bug fixes:
  • Strip newlines from .swift-version files.

New in CocoaPods 1.0.0 (May 13, 2016)

  • Enhancements:
  • Validate that resource bundles declared in the podspec contain resources.
  • Improvements to the error messaging around missing dependencies.
  • Make sharing schemes for development pods an installation option (share_schemes_for_development_pods) and disable sharing schemes by default.
  • Bug Fixes:
  • Fix search paths inheritance when there are transitive dependencies.

New in CocoaPods 1.0.0 RC 1 (May 5, 2016)

  • Enhancements:
  • The pod init command now uses target inheritance for test targets in the generated Podfile.
  • Support customized build directories by letting user xcconfig definitions rely on the new overridable alias build variable PODS_BUILD_DIR.
  • Bug Fixes:
  • Fix for pod repo push --help throwing an error.
  • The warning for not having utf-8 set as the default encoding for a terminal now properly respects the --no-ansi argument.

New in CocoaPods 1.0.0 Beta 8 (Apr 19, 2016)

  • 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.
  • 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.
  • Running pod repo update --silent will now properly silence git output while updating the repository.

New in CocoaPods 1.0.0 Beta 5 (Mar 14, 2016)

  • Breaking:
  • 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.
  • Enhancements:
  • Add the :package: emoji in front of CocoaPods Script Build Phases to quickly and visually differentiate them from other phases.
  • Enable syntax highlighting on the Podfile in the generated Pods.xcodeproj.
  • Bug Fixes:
  • Fixes paths passed for resources bundles in the copy resources script.
  • Fix saying the master specs repo exists when it has not been set up.
  • Move ${TARGET_DEVICE_ARGS} out of the quotations for --sdk in the Copy Pods Resources build phase.
  • Handle when $PATH isn't set.
  • Module maps that are set per-platform will be installed for the correct platform.

New in CocoaPods 1.0.0 Beta 4 (Mar 14, 2016)

  • Enhancements:
  • 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.
  • Pass COCOAPODS_VERSION as environment variable when invoking the prepare_command.
  • 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.
  • Fix mixed integrations where static libraries are used along frameworks from different target definitions in one Podfile.
  • Pass target device arguments to ibtool in the copy resources script, fixing compilation of storyboards when targeting versions of iOS prior to iOS 8.
  • Fix pod repo lint when passed a path argument.

New in CocoaPods 1.0.0 Beta 3 (Feb 3, 2016)

  • Breaking:
  • Rename the xcodeproj Podfile directive to project.
  • Bug Fixes:
  • Don't try to embed project headers into frameworks.
  • Fix a crash in the analyzer when target deduplication is deactivated.
  • Handle CoreData mapping models with recursive resource globs.
  • Generate valid xcconfig when target name includes spaces.
  • Properly add resource files to resources build phase.
  • Fix suggestion of sudo when it actually isn't needed.
  • Set the TARGET_DEVICE_FAMILY to support both iPhone and iPad for iOS resource bundle targets.
  • Share user schemes of Pods.xcodeproj after generating deterministic UUIDS.
  • Only attempt to import a framework during linting if the pod has source files, and is thus being built by CocoaPods.
  • Determine whether an external source needs to be fetched when updating a dependency regardless of subspec names.

New in CocoaPods 0.39.0 (Oct 20, 2015)

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

New in CocoaPods 0.39.0 RC 1 (Oct 6, 2015)

  • Enhancements:
  • Support for adding dependency target vendored libraries and frameworks to build settings.
  • Always link the aggregate target as static to the user project.

New in CocoaPods 0.39.0 Beta 5 (Oct 2, 2015)

  • Breaking:
  • Activesupport 4 is now required, breaking compatibility with applications locked to 3.x.y.
  • Enhancements:
  • The EMBEDDED_CONTENT_CONTAINS_SWIFT build setting will now be set when appropriate.
  • The embed frameworks script will no longer manually copy over the Swift runtime libraries on Xcode 7 and later.
  • A post-install summary of the pods installed is now printed.
  • 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.
  • Use watchsimulator when validating pods with the watchOS platform.
  • C or C++ preprocessor output files with .i extension now have their compiler flags set correctly.
  • Remove SDKROOT relative search path as it isn't needed anymore since XCTest.
  • Podfile generated by pod init now specifies iOS 8.0 as the default platform and includes use_frameworks! for Swift projects.
  • Support for the new tvos platform.
  • Either generate just one pod target or generate it once for each target definition.
  • Stop setting DYLIB_CURRENT_VERSION, CURRENT_PROJECT_VERSION, and DYLIB_COMPATIBILITY_VERSION for pods integrated as dynamic frameworks.
  • The headers folders paths for static library pods will be unset, fixing validation when archives are uploaded to iTunes Connect.
  • Don't require the platform attribute for targets without any declared pods when running pod install --no-integrate.
  • Gracefully handle exception if creating the repos directory fails due to a system error like a permission issue.

New in CocoaPods 0.39.0 Beta 4 (Sep 7, 2015)

  • Bug Fixes:
  • Using vendored frameworks without a Headers directory will no longer cause a crash.
  • Computing the set of transitive dependencies for a pod target, even if the target is scoped, will no longer smash the stack.
  • Take into account a specification's exclude_files when constructing resource bundles.
  • Fix resolving to platform-compatible versions of transitive dependencies.

New in CocoaPods 0.39.0 Beta 3 (Aug 29, 2015)

  • This release fixes a file permissions error when using the RubyGem.

New in CocoaPods 0.38.2 (Aug 4, 2015)

  • Bug Fixes:
  • Fix generation of xcconfig files that specify both -iquote and -isystem headers.
  • Pods integrated as static libraries can no longer be imported as modules, as that change had unexpected side-effects.
  • Source file locking now happens after plugin and podfile post-install hooks have run.
  • Only set project, dylib, and compatibility versions to valid, three integer values.

New in CocoaPods 0.38.0 Beta 2 (Jul 7, 2015)

  • Enhancements:
  • The resolver will now take supported platform deployment targets into account when resolving dependencies.
  • 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.
  • cocoapods-stats is now a default plugin.
  • Bug Fixes:
  • Ensure that the prepare_command is run even when skipping the download cache.
  • Public headers inside a directory named framework should be linked in the sandbox.
  • Properly support targets with spaces in their name in the embed frameworks script.
  • Don't add the -ObjC linker flag if it's unnecessary.
  • Ensure that no duplicate framework or target dependencies are created.

New in CocoaPods 0.38.0 Beta 1 (Jun 27, 2015)

  • 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
  • Breaking:
  • The CocoaPods environment header has been removed.
  • The Installer is passed directly to the pre_install and post_install hooks defined in the Podfile, instead of the previously used
  • Hooks::InstallerRepresentation.
  • Deprecate the xcconfig attribute in the Podspec DSL, which is replaced by the new attributes pod_target_xcconfig and user_target_xcconfig.
  • Enhancements:
  • The notice about a new version being available will now include our recommendation of using the latest stable version.
  • New commands pod cache list and pod cache clean allows you to see the contents of the cache and clean it.
  • The download cache will automatically be reset when changing CocoaPods versions.
  • 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.
  • Allow passing additional arguments to pod lib create, which then get passed as-is to the configure scripts.
  • Use -analyzer-disable-all-checks to disable static analyzer for pods with inhibit_warnings enabled (requires Xcode >= 6.1).
  • Cache globbing in PathList to speed up pod install.
  • CocoaPods will validate your podfile and try to identify problems and conflicts in how you've specified the dependencies.
  • pod update will now accept root pod names, even when only subspecs are installed.
  • Support for the new watchos platform.
  • 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.
  • Public headers of vendored frameworks are now automatically linked in the sandbox. That allows transitive inclusion of headers from other pods.
  • 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.
  • 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.
  • The error report template is now more robust against missing executables.
  • Attempting to specify a git source where a Podspec for the requested pod is not found will have a more helpful error message.
  • pod outdated will now accept the --no-repo-update and --no-integrate options.
  • Fixes an issue which prevented using a custom CONFIGURATION_BUILD_DIR when integrating CocoaPods via dynamic frameworks.
  • Pods frameworks in codesigned Mac apps are now signed.

New in CocoaPods 0.37.2 (May 28, 2015)

  • Enhancements:
  • Schemes of development pods will now be shared.
  • Recognizes incomplete cache when the original download of a pod was interrupted.
  • Allow opting out of pod source locking, meaning pod try yields editable projects.
  • Bug Fixes:
  • pod repo push will now find and push JSON podspecs.
  • Flush stdin/stderr and wait a bit in executable

New in CocoaPods 0.37.1 (May 7, 2015)

  • 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.
  • Only add the "Embed Pods Frameworks" script for application and unit test targets.
  • C++ source files with .cc, .cxx and .c++ extensions now have their compiler flags set correctly.
  • Handle broken symlinks when installing a Pod.
  • Just remove write permissions from files, so executables are unaffected.
  • Always copy the generated Podfile.lock to Pods/Manifest.lock so they are guaranteed to match, character-by-character, after installation.
  • Don't generate an umbrella header when a custom module map is specified. This avoids an incomplete module map warning.
  • Actually allow skipping the download cache by downloading directly to the download target when requested.

New in CocoaPods 0.37.0 (May 4, 2015)

  • Bug Fixes:
  • Print the UTF-8 warning to STDERR.

New in CocoaPods 0.37.0 RC 2 (May 1, 2015)

  • Bug Fixes:
  • Handle caching specs that have subspecs with higher minimum deployment targets without deleting needed source files.
  • Automatically detect JSON podspecs in pod lib lint.

New in CocoaPods 0.37.0 RC 1 (Apr 29, 2015)

  • Enhancements:
  • Add environment variable COCOAPODS_SKIP_UPDATE_MESSAGE to disable new version message.
  • Use user project's object version for pods project.
  • Bug Fixes:
  • Adding $(inherited) to FRAMEWORK_SEARCH_PATHS build setting in xcconfig for aggregate.
  • Don't crash when the downloader can't find an appropriate podspec in a git pod.
  • Automatically lock Pod source files after installing.
  • Handle subprocesses leaking STDOUT/STDERR pipes by more strictly managing process lifetime and not allowing I/O to block completion of the task.
  • Do not create pod target if source_files only contains headers.
  • Run a pod's prepare_command (if it has one) before it is cleaned in the download cache.
  • Don't set the -fno-objc-arc compiler flags for files for which the flag makes no sense.
  • Also apply a pod's configuration to any resource targets defined by the pod.

New in CocoaPods 0.36.4 (Apr 18, 2015)

  • App:
  • Add new app icon.
  • Update bundled Ruby version to 2.2.2, which deals with a security issue.
  • Bundle all gems that Apple bundles with OS X’s Ruby as well.
  • Pin gems that require compilation to the ones that are bundled if the user does not have the Xcode Command-Line Tools installed.
  • Bug Fixes:
  • Fixes various problems with Pods that use xcasset bundles. Pods that use xcassets can now be used with the pod :path option.

New in CocoaPods 0.36.3 (Apr 8, 2015)

  • Bug Fixes:
  • Fix using the downloader.

New in CocoaPods 0.36.1 (Mar 27, 2015)

  • Bug Fixes:
  • Workarounds(✻) for the resource script's handling of .xcasset files.
  • Fix the sanitization of configuration names in the generated target environment header.

New in CocoaPods 0.36.0 (Mar 11, 2015)

  • Enhancements:
  • Allows Swift pods to have a deployment target under iOS 8.0 if they use XCTest.
  • Bug Fixes:
  • Include Swift-specific build settings on target creation, i.e. disable optimizations for debug configuration.
  • Only copy explicitly specified xcasset files into the bundle of the integrated target.
  • Correctly filter Xcode warnings about the use of dynamic frameworks.
  • 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.
  • Allows the usage of :head dependencies even when the most recent published version was a pre-release.
  • Limit the check for transitive static binaries to those which are directly linked to the user target.
  • Lint to prevent dynamic libraries and frameworks from passing with iOS 7.
  • Shows an informative error message when there is no base specification found for a :head dependency.
  • Fix the OTHER_SWIFT_FLAGS generated, so it inherits previous definitions.

New in CocoaPods 0.36.0 RC 1 (Feb 25, 2015)

  • Enhancements:
  • Set the APPLICATION_EXTENSION_API_ONLY build setting if integrating with a watch extension target.
  • 
Build for iOS simulator only during validation. This allows validation without having provisioning profiles set up.

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

  • Automatically detect conflicts between framework names.

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

  • Let lint fail for Swift pods supporting deployment targets below iOS 8.0.

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

  • Do not copy Swift standard libraries multiple times.

  • Check for Xcode License Agreement before running commands.

  • pod update PODNAME will update pods in a case-insensitive manner.

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

  • Require explicit use of use_frameworks! for Pods written in Swift.

  • Lint as framework automatically. If needed, --use-libraries option allows linting as a static library.

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

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

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

  • Fixed installation for app-extension targets which had no dependencies configured in the Podfile.

  • Correct escaping of resource bundles in 'Copy Pods Resources' script.

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

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

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

  • Remove the stored lockfile checkout source when switching to a development pod.

  • Migrate local Ruby podspecs to JSON, allowing updating those pods to work.

  • Removing grep color markup in the embed frameworks script.

  • Fixes an issue where pod ipc list and pod ipc podfile was returning an error.

  • Fixes an issue with spaces in the path to the user's developer tools.

New in CocoaPods 0.36.0 Beta 2 (Jan 29, 2015)

  • Breaking:
  • 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.
  • Enhancements:
  • Set the APPLICATION_EXTENSION_API_ONLY build setting if integrating with an app extension target.
  • Xcodebuild warnings will now be reported as warning during linting instead of note.
  • Copy only the resources required for the current build configuration.
  • Bug Fixes:
  • Ensure that linting fails if xcodebuild doesn't successfully build your Pod.
  • 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.
  • Xcodebuild warnings with the string error in them will no longer be linted as errors if they are in fact warnings.
  • Any errors which occur during fetching of external podspecs over HTTP will now be gracefully handled.
  • When updating spec repositories only update the git sourced repos.
  • Pods referenced via the :podspec option will have their podspecs properly parsed in the local directory if the path points to a local file.
  • 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.

New in CocoaPods 0.35.0 (Nov 26, 2014)

  • Enhancements:
  • Allow the specification of file patterns for the Podspec's requires_arc attribute.
  • 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.
  • Bug Fixes:
  • Fix an output formatting issue with various commands like pod search and pod trunk.
  • Show a helpful error message if the old resolver incorrectly activated a pre-release version that now leads to a version conflict.
  • Provides a user friendly message when using pod spec create with a repository that doesn't yet have any commits.
  • Fixes an issue with integrating into projects where there is a slash in the build configuration name.
  • 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.
  • Fixed an issue that Core Data mapping models where not compiled when copying resources to main application bundle.
  • Enhancements:
  • 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".
  • Use --allow-warnings rather than --error-only for pod spec validation

New in CocoaPods 0.35.0 RC2 (Nov 10, 2014)

  • Enhancements:
  • Allow the resolver to fail faster when there are unresolvable conflicts involving the Lockfile.
  • Bug Fixes:
  • Allows pre-release spec versions when a requirement has an external source specified.
  • We no longer require git version 1.7.5 or greater.
  • Fix the usage of :head pods.
  • Show a more informative message when attempting to lint a spec whose source could not be downloaded.

New in CocoaPods 0.34.4 (Oct 25, 2014)

  • Fixes a crash when running `pod outdated`.
  • Ensure that external sources (as specified in the `Podfile`) are downloaded when their source is missing, even if their specification is present.
  • 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.
  • Fixes a crash when using file URLs as a source.
  • 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.
  • Fixes an issue running the resources script when Xcode is installed to a directory with a space when compiling xcassets.
  • Fixes an issue when installing Pods with resources to a target which doesn't have any resources.
  • Ensure that git 1.7.5 or newer is installed when running pod.

New in CocoaPods 0.34.1 (Sep 29, 2014)

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

New in CocoaPods 0.34.0 (Sep 26, 2014)

  • Breaking:
  • 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. Any source URLs specified that have not yet been added will be cloned before resolution begins.
  • Enhancements:
  • Added the pod repo list command which lists all the repositories.
  • Bug Fixes:
  • Works around an Xcode issue where linting would fail even though xcodebuild actually succeeds. Xcode.app also doesn't fail when this issue occurs, so it's safe for us to do the same.
  • Fixes the detection of JSON podspecs included via :path.
  • Fixes an issue where pod install would crash during Plist building if any pod has invalid UTF-8 characters in their title or description.
  • Fix crash when the URL of a private GitHub repo is passed to pod spec create as an argument.

New in CocoaPods 0.34.0 RC 2 (Sep 17, 2014)

  • Bug Fixes:
  • Fixes an issue where `pod lib lint` would crash if a podspec couldn't be loaded.
  • Fixes an issue where `pod init` would not add `source 'master'` to newly created Podfiles.

New in CocoaPods 0.33.1 (May 21, 2014)

  • Bug Fixes:
  • Fix `pod spec lint` for `json` podspecs.
  • Fixed downloader issues related to `json` podspecs.
  • Fixed `--no-ansi` flag in help banners.

New in CocoaPods 0.32.1 (Apr 16, 2014)

  • Bug Fixes:
  • Fixed the Podfile `default_subspec` attribute in nested subspecs.

New in CocoaPods 0.31.1 (Apr 3, 2014)

  • 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).
  • Bug Fixes:
  • Fix linting for Pods which declare a private repo as the source.

New in CocoaPods 0.31.0 (Apr 1, 2014)

  • Enhancements:
  • Warnings are not promoted to errors anymore to maximise compatibility with existing libraries.
  • Include the versions of the Pods to the output of pod list.
  • The linter will now check the reachability of the homepage of Podspecs during a full lint.
  • Improved detection of the last version of a specification in pod spec subcommands.
  • Display advised settings for Travis CI in the warning related presented when the terminal encoding is not set to UTF-8.
  • Unset the CDPATH env variable before shelling-out to prepare_command.
  • Bug Fixes:
  • Resolve crash related to the I18n deprecation warning.
  • Fix compilation issues related to the native Extension of Xcodeproj.
  • Robustness against user Git configuration and against merge commits in pod repo subcommands.
  • Gracefully inform the user if the :head option is not supported for a given download strategy.
  • Cleanup a pod directory if error occurs while downloading.
  • No longer warn for Github repositories with OAuth authentication.
  • Fix for when using s.version as the :tag for a git repository in a Podspec.
  • Improved escaping of paths in Git downloader.
  • Podspec without explicitly set requires_arc attribute no longer passes the lint.
  • Properly quote headers in the -isystem compiler flag of the aggregate targets.

New in CocoaPods 0.30.0 (Mar 31, 2014)

  • Enhancements:
  • 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.
  • Improves the error message when searching with an invalid regular expression.
  • Improves pod init to save Xcode project file in Podfile when one was supplied.
  • Adds functionality to specify a template URL for the pod lib create command.
  • Bug Fixes:
  • Fixes a bug with pod repo remove silently handling permission errors.
  • 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.

New in CocoaPods 0.29.0 (Dec 27, 2013)

  • Breaking:
  • The command podfile_info is now a plugin offered by CocoaPods. As a result, the command has been removed from CocoaPods.
  • 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
  • Enhancements:
  • Introduced pod try the easiest way to test the example project of a pod.
  • 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.
  • Support LZMA2 compressed tarballs in the downloader.
  • Add Bazaar support for installing directly from a repo.
  • The pod search command now supports regular expressions for the query parameter when searching using the option --full.
  • Pod lib lint now accepts multiple podspecs in the same folder.
  • 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.
  • The pod search command now supports searching on cocoapods.org when searching using the option --web. Options --ios and --osx are fully supported. Florian Hanke #1643
  • The pod search 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.
  • 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.
  • When updating the pod repos, repositories with unreachable remotes are now ignored. This fixes an issue with certain private repositories.
  • The linter will now display an error if a Pod's name contains whitespace.
  • 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.
  • The linter will now display an error if a framework ends with .framework (i.e. QuartzCore.framework).
  • 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).
  • The ARCHS build setting can come back as an array when more than one architecture is specified.
  • 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 ).
  • Fixed an incorrect path being used in the example app Podfile generated by pod lib create.

New in CocoaPods 0.28.0 (Nov 14, 2013)

  • Enhancements:
  • 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.
  • 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.
  • 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.
  • 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).
  • 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.
  • Vendored Libraries now correctly affect whether a podspec is considered empty.
  • Vendored Libraries and Vendored Frameworks now have their paths validated correctly.
  • Gists are now correctly accepted with https.
  • The pod push command is now more specific about the branch it pushes to.
  • Dtrace files are now properly left unflagged when installing, regardless of configuration.
  • 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.

New in CocoaPods 0.26.2 (Oct 10, 2013)

  • 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.
  • If an user target doesn't specify an architecture the value specified for the project is used in CocoaPods targets.
  • The Pods project now properly configures ARC on all build configurations.

New in CocoaPods 0.26.1 (Oct 9, 2013)

  • Enhancements:
  • 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.
  • 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.
  • 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.
  • Added the documentation_url DSL attribute to the specifications.
  • Bug Fixes:
  • The search paths of vendored frameworks and libraries now are always specified relatively.
  • 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.
  • CocoaPods will not attempt to load anymore all the version of a specification preventing crashes if those are incompatible.

New in CocoaPods 0.25.0 (Oct 1, 2013)

  • Enhancements:
  • Added support for Xcode 5.
  • 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.
  • Solved outstanding issues with CocoaPods resource bundles and Archive builds
  • Ensure resource bundles are copied to installation location on install actions Chris Gummer #1364
  • Various bug fixes in Xcodeproj, refer to its CHANGELOG for details.

New in CocoaPods 0.22.0 (Sep 20, 2013)

  • Enhancements:
  • 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 https://github.com/CocoaPods/CocoaPods.
  • 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).
  • The dependencies of the targets of the Pods project are now made explicit.
  • The size of the cache used for the git repos is now configurable.
  • The copy resources shell script now aborts if any error occurs.
  • The output of shell script build phases no longer includes environment
  • variables to reduce noise.
  • 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.
  • Fixed the library reppresentation of the hooks which caused issues with the
  • #copy_resources_script_path method.
  • Frameworks symlinks are not properly preserved by the copy resources script.