Installation & Update
To install or update CocoaPods see this guide.
To install release candidates run [sudo] gem install cocoapods --pre
Master
Enhancements
Bug Fixes
- Restore
development_pod_targetspublic method in installer
Dimitris Koutsogiorgas #7292
1.4.0.rc.1 (2017-12-16)
Enhancements
-
Integrate
swift_versionDSL 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
-
Deduplicate output path file names for resources and frameworks
Eric Amorde #7259 -
Allow installation of a pod with its own Swift version on multiple targets
Dimitris Koutsogiorgas #7261 -
Quote framework names in OTHER_LDFLAGS
Tyler Stromberg #7185 -
Fix static framework archive regression from #7187
Paul Beusterien #7225 -
Install resource bundles and embed frameworks for every test target's configuration
Nickolay Tarbayev #7012 -
Set
SWIFT_VERSIONto test native targets during validation
Dimitris Koutsogiorgas #7216 -
Add copied resources' paths to "Copy Pods Resources" output file list
igor-makarov #6936 -
Do not link system frameworks of test specs to library targets
Dimitris Koutsogiorgas #7205 -
Be more lenient when stripping frameworks and dSYMs for non fat binaries
Dimitris Koutsogiorgas #7196 #5854 -
Do not display script phases warnings multiple times per platform
Dimitris Koutsogiorgas #7193 -
Fix unnecessary whole project recompilation with static frameworks
Vladimir Gorbenko #7187 -
Prevent passing empty string to git when running
pod repo update --silent
Jon Sorrells #7176 -
Do not propagate test spec frameworks and libraries into pod target xcconfig
Dimitris Koutsogiorgas #7172 -
Set language to Swift for test native targets if any dependencies use Swift
Dimitris Koutsogiorgas #7170 -
Prevent multiple script phases from stripping vendored dSYM
Dimitris Koutsogiorgas #7166 -
Static library headers should all be
Projectin Xcode header build phase
Paul Beusterien #4496 -
Fix archiving apps with static frameworks
Paul Beusterien #7158
1.4.0.beta.2 (2017-10-24)
Enhancements
-
Integrate execution position for shell script phases
Dimitris Koutsogiorgas #7101 -
Add support to integrate script phases from podspecs
Dimitris Koutsogiorgas #7092 -
Add support for preventing pch file generation with the skip_pch podspec attribute
Paul Beusterien #7044 -
Add app host support for test specs
Dimitris Koutsogiorgas #6953 -
Add support for resources in source static library frameworks
Paul Beusterien #7100
Bug Fixes
-
Copy .swiftmodule into static_frameworks to enable access to Swift static frameworks
Paul Beusterien #7140 -
Fix docs for prefix header paths
Dimitris Koutsogiorgas #7149 -
Fix integration
prefix_header_filewith test specs
Dimitris Koutsogiorgas #7147 -
Set the default Swift version to 3.2 during validation
Victor Hugo Barros Dimitris Koutsogiorgas #7136 -
Better warning message for which Swift version was used during validation
Dimitris Koutsogiorgas #7121 -
Fix static_framework Swift pod dependencies and implement pod access to dependent vendored_framework modules
Paul Beusterien #7117 -
Strip vendored dSYMs during embed script phase
Dimitris Koutsogiorgas #7111 -
Warn when a pod that was added or changed includes script phases
Dimitris Koutsogiorgas #7110 -
Build pod targets with script phases and integrate them properly
Dimitris Koutsogiorgas #7104 -
Do not set a
CODE_SIGN_IDENTITYfor macOS app hosts or xctest bundles
Dimitris Koutsogiorgas #7103 -
Fix framework and resources paths caching
Dimitris Koutsogiorgas #7068 -
Build subspecs in static frameworks without error
Paul Beusterien #7058 -
Ensure
SYMROOTis properly set for all user configurations
Dimitris Koutsogiorgas #7081
1.4.0.beta.1 (2017-09-24)
Enhancements
-
Do not force include the master spec repo if plugins provide sources
Eric Amorde #7033 -
Add custom shell script integration from Podfile
Dimitris Koutsogiorgas #6820 -
Show full requirement trees when a version conflict is encountered during dependency resolution.
Samuel Giddins -
Add support for source static library frameworks
Paul Beusterien #6811 -
Add Private Header support to static frameworks
Paul Beusterien #6969 -
For source static frameworks, include frameworks from dependent targets and libraries in OTHER_LDFLAGS
Paul Beusterien #6988
Bug Fixes
-
Deduplicate test specs correctly from pod variants and targets
Dimitris Koutsogiorgas #7036 -
Do not merge
pod_target_xcconfigfrom test specs into non test xcconfigs
Dimitris Koutsogiorgas #7037 -
Wrap
$PODS_CONFIGURATION_BUILD_DIRand$PODS_BUILD_DIRwith curlies
Dimitris Koutsogiorgas #7048 -
Fix common paths sometimes calculating incorrectly
amorde #7028 -
Do not code sign OSX targets for testing bundles
Justin Martin #7027 -
Ensure a unique ID is generated for each resource bundle
Justin Martin #7015 -
Do not include settings from file accessors of test specs into aggregate xcconfigs
Dimitris Koutsogiorgas #7019 -
Use the resolver to identify which pod targets are test only
Dimitris Koutsogiorgas Justin Martin #7014 -
Perform code signing on xctest bundles in the Pods project generated by a test spec
Justin Martin #7013 -
Exclude test resource and framework paths from aggregate targets
Dimitris Koutsogiorgas #7000 -
Wrap platform warning message with quotes
Dimitris Koutsogiorgas #6968 -
Wire dependencies for pod targets not part of any aggregate target
Dimitris Koutsogiorgas #6948 -
Fix validation warnings when using --swift-version
Danielle Tomlinson #6971 -
Fix xcconfig boolean merging when substrings include yes or no
Paul Beusterien #6997 -
Filter out subset dependent targets from FRAMEWORK_SEARCH_PATHS
Paul Beusterien #7002 -
Propagate HEADER_SEARCH_PATHS settings from search paths
Paul Beusterien #7006
1.3.1 (2017-08-02)
Enhancements
- None.
Bug Fixes
- Do not use
--deletewhen copying resources to app target folder
Dimitris Koutsogiorgas #6927
1.3.0 (2017-08-02)
Enhancements
- None.
Bug Fixes
-
Ensure transitive dependencies are linked to test targets
Dimitris Koutsogiorgas #6917 -
Properly install pod targets with test specs within subspecs
Dimitris Koutsogiorgas #6915 -
Add
--skip-testssupportpushto push command
Dimitris Koutsogiorgas #6893
1.3.0.rc.1 (2017-07-27)
Enhancements
- None.
Bug Fixes
-
Cache result of resource and framework paths
Dimitris Koutsogiorgas #6893 -
Ensure source urls are set when spec has subspecs with dependencies
Dimitris Koutsogiorgas #6888
1.3.0.beta.3 (2017-07-19)
Enhancements
-
Protect rsync tmp files from being deleted if two targets sync at the same time
Justin Martin #6873 -
Include test schemes within library schemes
Dimitris Koutsogiorgas #6765 -
Truncate extra groups in Development Pods when they are parents of all files
Eric Amorde #6814 -
Do not re-write generated files that have not changed
Dimitris Koutsogiorgas dingjingpisces2015 #6825
Bug Fixes
-
Set the test xcconfig file to resource bundles used only by tests
Dimitris Koutsogiorgas #6886 -
Integrate test targets to embed frameworks and resources
Dimitris Koutsogiorgas #6828 -
Ensure resource bundle and test dependencies are set for test native targets
Dimitris Koutsogiorgas #6829 -
Provide a better error message when references are missing for non-source files David Airapetyan #4887
-
Select unique module_name(s) across host target's and embedded targets' pod targets
Anand Biligiri #6711
1.3.0.beta.2 (2017-06-22)
Enhancements
-
Add inputs and outputs for resources script phase
Dimitris Koutsogiorgas #6806 -
Simplify logic around framework input and output paths
Dimitris Koutsogiorgas #6803 -
Add inputs and outputs to check manifest lock and embed framework script phases
Dimitris Koutsogiorgas #6797
Bug Fixes
-
Remove 0.34 migration for a small boost in
pod installtime
Dimitris Koutsogiorgas #6783 -
Use a cache when figuring out if a pod target is test only
Dimitris Koutsogiorgas #6787
1.3.0.beta.1 (2017-06-06)
Enhancements
-
Add validator support to run test specs during lint
Dimitris Koutsogiorgas #6753 -
Fix to include proper runtime search paths for test native targets
Dimitris Koutsogiorgas #6727 -
Aggregate targets should not include pod targets only used by tests
Dimitris Koutsogiorgas #6726 -
Add support for test target creation in the pods project generator
Dimitris Koutsogiorgas #6703 -
Copy dSYM for vendored frameworks.
Dimitris Koutsogiorgas #1698 -
Prevents need for .swift-version file in Objective-C pods
Austin Emmons #6742 -
Add a ipc command
podfile_jsonconverts a Podfile to JSON
Dacaiguoguo #6779
Bug Fixes
-
Link
swiftSwiftOnoneSupportfor test xcconfigs
Dimitris Koutsogiorgas #6769 -
Do not double add search paths to test xcconfig from parent
Dimitris Koutsogiorgas #6768 -
Ensure product name for tests is not overridden by custom build settings
Dimitris Koutsogiorgas #6766 -
Do not use the same product name for test targets
Dimitris Koutsogiorgas #6762 -
Use unique temp folder during lint for parallel execution
Dimitris Koutsogiorgas #5117 -
Stop adding
$(inherited)for every static library linked
Dimitris Koutsogiorgas #6756 -
Settings for dependent targets should include the parent target for test xcconfigs
Dimitris Koutsogiorgas #6755 -
Only check for valid Swift version for pod targets that use Swift
Dimitris Koutsogiorgas #6733 -
Fix pod install error from 1.2.1 when working with static lib-only projects.
Ben Asher #6673 -
Use
git!when executingpushcommand in order to raise informative and set exit code.
Dimitris Koutsogiorgas #6700 -
Make copy resources echoes always return true to work around issue where Xcode stops handling build script output greater than ~440 characters (rdar://30607704).
postmechanical #6595 -
Inherit pod defined values for
SWIFT_ACTIVE_COMPILATION_CONDITIONS.
Louis D'hauwe #6629
1.2.1 (2017-04-11)
Enhancements
- None.
Bug Fixes
- No master specs cloning when not needed for
pod lib lint.
Alfredo Delli Bovi #6154
1.2.1.rc.1 (2017-04-05)
Enhancements
- None.
Bug Fixes
-
Fix generating
LD_RUNPATH_SEARCH_PATHSwithoutuse_frameworks!but consuming a vendored dynamic artifact.
Dimitris Koutsogiorgas #6596 -
Fix building with static lib subprojects (previously only supported framework subprojects).
Ben Asher #5830 #6306 -
Fix regression from #6457 to ensure a correct error message is given when a spec is not found.
Dimitris Koutsogiorgas #6457 -
Provide a better error message if a podspec is found but cannot be parsed.
Dimitris Koutsogiorgas #6457 -
Only share pod target xcscheme if present during validation.
Dimitris Koutsogiorgas #6558 -
Properly compile storyboard for watch device family.
Dimitris Koutsogiorgas #6516 -
Support git progress for
pod repo updateandpod install --repo-update
Alfredo Delli Bovi #6525 -
Return new exit code (31) when spec not found
Alfredo Delli Bovi #6033 -
Provide better error message when spec not found
Alfredo Delli Bovi #6033
1.2.1.beta.1 (2017-03-08)
Enhancements
-
Use red text when pod installation fails Dimitris Koutsogiorgas #6534
-
Provide installation option to disable multiple pod sources warnings.
Dimitris Koutsogiorgas #6497 -
Use the colored2 gem instead of colored.
Orta Therox xcodeproj#463 -
Cache results of dynamic_binary?
Ken Wigginton #6434 -
Created
NOMENCLATURE.mdto keep a glossary of the most common terms used in cocoapods. Rob Contreras #2379
Bug Fixes
-
Ensure Core Data models get added to the compile sources phase for header generation.
Ben Asher #6259 -
Do not crash when attempting to install pod with no supported targets.
Dimitris Koutsogiorgas #6465 -
Correctly handle
OTHER_LDFLAGSfor targets with inherit search paths and source pods.
Justin Martin Dimitris Koutsogiorgas #6481 -
Uses
${PODS_PODFILE_DIR_PATH}for generated manifest lock script phase.
Dimitris Koutsogiorgas #5499 -
Do not generate
UIRequiredDeviceCapabilitiesfortvOSInfo.plists.
Dimitris Koutsogiorgas #6193 -
Fix integration with vendored static frameworks and libraries.
Dimitris Koutsogiorgas #6477 -
Use
${SRCROOT}rather than${PODS_ROOT}in the generated manifest lock script phase.
Dimitris Koutsogiorgas #5499 -
Fix build phase resource references to point at PBXVariantGroups where relevant.
Wes Campaigne Dimitris Koutsogiorgas #6373 -
Correctly set runtime search paths for OSX unit test bundles when using frameworks.
Dimitris Koutsogiorgas #6435 -
Add
--skip-import-validationto skip linking a pod during lint.
Samuel Giddins Dimitris Koutsogiorgas #5670 -
Updated the colored2 gem (previous version removed from rubygems.org).
Ben Asher #6533
1.2.0 (2017-01-28)
Enhancements
- None.
Bug Fixes
- Do not link static frameworks to targets that use
inherit! search_paths.
Dimitris Koutsogiorgas #6065
1.2.0.rc.1 (2017-01-13)
Enhancements
-
Show git progress when downloading the CocoaPods Specs repo.
Danielle Tomlinson #5937 -
Move Installer target verification into the Xcode namespace Danielle Tomlinson #5607
Bug Fixes
- None.
1.2.0.beta.3 (2016-12-28)
Enhancements
-
pod repo pushnow accepts the--swift-versionargument.
Dimitris Koutsogiorgas #6217 -
Output Swift targets when multiple versions of Swift are detected.
Justin Martin & Dimitris Koutsogiorgas #6191 -
[update] adding --sources to specify to only update pods from a repo
Mark Schall #5809 -
Add aggregated search paths targets to vendored build settings
Chris Ortman Johannes Plunien #5512 -
Use fetch and reset rather than a pull when updating specs repos.
Danielle Tomlinson #6206
Bug Fixes
-
Fix default LD_RUNPATH_SEARCH_PATHS for host targets.
Dimitris Koutsogiorgas #6006 -
Fix codesigning issues when targets have spaces.
Sam Gammon #6153 -
Raise an exception if unable to find a reference for a path and handle symlink references.
Dimitris Koutsogiorgas #5427 -
Re-escaped backslashes in embed_frameworks generator
Harlan Haskins #6121 -
Escape spaces in CONFIGURATION_BUILD_DIR when creating header folders symlink
Dmitry Obukhov #6146 -
Fail gracefully when downloading a podspec in
pod spec lintfails.
Samuel Giddins -
Remove the
const_missinghack forPod::SourcesManager.
Samuel Giddins -
Fixed code signing issue causing lint failure on macOS.
Paul Cantrell #5645 -
Raise an exception when using a git version prior to 1.8.5.
Danielle Tomlinson #6078 -
Fix framework support for frameworks in sub-projects.
Ben Asher #6123 -
Remove errors that prevent host/extension target mismatches, which Xcode will warn about. Ben Asher #6173
1.2.0.beta.1 (2016-10-28)
Enhancements
-
Generate
PODS_TARGET_SRCROOTbuild 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_SIGNis set totrue.
Ben Asher #6088
Bug Fixes
-
Add target-device tvOS in copy_resources generator.
Konrad Feiler #6052 -
Read the correct
SWIFT_VERSIONwhen generating target XCConfigs.
Ben Asher #6067 -
Don't explicitly set
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESto NO.
Ben Asher #6064 -
Redefine FOUNDATION_EXPORT for C-only pods in umbrella header.
Chris Ballinger #6024
1.1.1 (2016-10-20)
Enhancements
- None.
Bug Fixes
- Strip newlines from .swift-version files.
Danielle Tomlinson #6059
1.1.0 (2016-10-19)
Enhancements
-
Use host target for frameworks of XPC services.
Ingmar Stein #6029 -
Use Swift 3.0 by default during validation.
Danielle Tomlinson #6042 -
Exit with non-zero exit status if pod repo update fails
Uku Loskit #6037 -
The validator has an API for accessing which version of Swift was used.
Orta Therox #6049
Bug Fixes
-
None.
-
Redefine FOUNDATION_EXPORT for C-only pods in umbrella header.
Chris Ballinger #6024
1.1.0.rc.3 (2016-10-11)
Enhancements
-
Cache result of inhibit_warnings and include_in_build_config to speed up pod install.
Dimitris Koutsogiorgas #5934 -
Tell users about the .swift-version file on validation failures.
Danielle Tomlinson #5951 -
Improve performance of PathList.read_file_system
Heath Borders #5890 -
Cache result of uses_swift and should_build to speed up pod install.
Dimitris Koutsogiorgas #5837 -
Error with helpful message when integrating a pod into targets that have mismatched Swift versions.
Ben Asher #5984 -
Allow users to share pods between Objective-C and Swift targets.
Danielle Tomlinson #5984 -
Allow setting the linting Swift version via
--swift-version=VERSION
Danielle Tomlinson #5989 -
Greenify pod install success message
Stephen Hayes #5713 -
Update EMBEDDED_CONTENT_CONTAINS_SWIFT flag behaviour based on xcode version.
codymoorhouse #5732
Bug Fixes
-
Ensure messages apps have an embed frameworks build phase
Ben Asher #5860 -
Fix linting of private pods when using libraries.
Stefan Pühringer #5891
1.1.0.rc.2 (2016-09-13)
Enhancements
- 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
- Correctly pass Pod:VERSION in
pod lib create.
Danielle Tomlinson #5840
1.1.0.rc.1 (2016-09-10)
Enhancements
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 -Cforpod repo pushgit ops.
Ben Asher #5805
1.1.0.beta.2 (2016-09-03)
Enhancements
-
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 -
Set ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES when appropriate.
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)
Enhancements
-
Move Pods Project generation to an
XcodeNamespace.
Daniel Tomlinson #5480 -
Add the ability to inhibit swift warnings.
Peter Ryszkiewicz #5414 -
Use
git ls-remoteto skip full clones for branch dependencies.
Juan Civile #5376 -
[repo/push] --use-json to convert podspecs to JSON format when pushing.
Mark Schall #5568 -
Set 'Allow app extension API only' for Messages extensions.
Boris Bügling #5558 -
Accept
pod repo pushwith URL instead of only repo name.
Mark Schall #5572 -
[Installer] Set the SWIFT_VERSION for CocoaPods generated targets.
Danielle Tomlinson #5540 -
Print message when skipping user project integration.
Danielle Tomlinson #5517 -
Show GitHub Issues that could be related to exceptions.
Orta Therox #4817 -
Improve handling of app extensions, watch os 1 extensions and framework targets.
Ben Asher #4203 -
Add a license type to generated acknowledgements file in plist.
Naoto Kaneko #5436
Bug Fixes
-
Fix local pod platform conflict error message.
Muhammed Yavuz Nuzumlalı #5052 -
Avoid use of
activesupportversion 5 to stay compatible with macOS system Ruby.
Boris Bügling #5602 -
Fix installing pods with
use_frameworkswhen deduplication is disabled.
Samuel Giddins #5481 -
Running
pod setup --silentwill now properly silence git output while updating the repository.
Samuel Giddins -
Fix linting pods that depend upon
XCTest.
Samuel Giddins #5321 -
Use
requireinstead ofautoloadto solve an issue with loadingfourflusher.
Boris Bügling #5445 -
Resolve cyclic dependencies when creating pod targets.
Juan Civile #5362 -
Fix embedding frameworks in UI Testing bundles.
Daniel Tomlinson #5250 -
Ensure attempting to print a path in the error report doesn't itself error.
Samuel Giddins #5541 -
Fix linting with Xcode 8.
Boris Bügling #5529 -
Fix linting with Xcode 8 by disabling it entirely.
Boris Bügling #5528 -
Error during install when there are duplicate library names.
Daniel Tomlinson #4014 -
Make the
Check Pods Manifest.lockscript write errors to STDERR and improve POSIX shell compatibility.
Simon Warta #5595
1.0.1 (2016-06-02)
Enhancements
- None.
Bug Fixes
-
Symlink the header folders in the framework bundle's root directory by a new shell script build phase if
header_mappings_diris used with frameworks.
Marius Rackwitz #5313 -
Removed emojis in Build Phases names — as it seems that some third party tools have trouble with them.
Olivier Halligon #5382 -
Ensure
Setis defined before using it.
Samuel Giddins #5287 -
Add --target-device to ibtool invocation for XIBs Juan Civile #5282
-
Fix error when executables cannot be found. Jan Berkel #5319
-
Avoid removing all files when root directory contains unicode characters.
Marc Boquet #5294 -
Guarding from crash if pod lib create has a + character in the name.
William Entriken CocoaPods/pod-template#69 -
Use target product types to determine whether a target is a test target when running
pod init.
Samuel Giddins #5378
1.0.0 (2016-05-10)
Enhancements
-
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
- Fix search paths inheritance when there are transitive dependencies.
Samuel Giddins #5264
1.0.0.rc.2 (2016-05-04)
Enhancements
- 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)
Enhancements
-
The
pod initcommand 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 --helpthrowing 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-ansiargument.
Joshua Kalpin #5199
1.0.0.beta.8 (2016-04-15)
Enhancements
- None.
Bug Fixes
-
Headers from vendored frameworks no longer end up in the
HEADER_SEARCH_PATHwhen using frameworks. They are now assumed to be already present as modular headers in the framework itself.
Mark Spanbroek #5146 -
Access to the
Pod::SourcesManagerconstant has been restored, though its use is considered deprecated and subject to removal at any time. Migrate to usePod::Config.instance.sources_managerin some manner as soon as possible.
Samuel Giddins -
Running
pod repo update --silentwill now properly silence git output while updating the repository.
Samuel Giddins
1.0.0.beta.7 (2016-04-15)
Enhancements
-
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 updateis not implicit when runningpod install.
Orta Therox #5135 -
Add support for sharded specs directories.
Samuel Giddins #5002 -
Pass the build setting
OTHER_CODE_SIGN_FLAGSto 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.globexplicitly 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_DIRinstead ofCONFIGURATION_BUILD_DIRin the generated embed resources build phase's script, so that UI test targets can be run.
seaders #5133 -
Ensure that a
CFBundleVersionis set for resource bundles' Info.plist files.
Samuel Giddins #4897
1.0.0.beta.6 (2016-03-15)
Breaking
-
Running
pod installdoesn't imply an automatic spec repo update.
The old behavior can be achieved by passing in the option--repo-updateor runningpod repo update.
Marius Rackwitz #5004 -
Remove the configuration variable
skip_repo_updateas the default behavior varies now betweenpod installandpod (update|outdated).
Marius Rackwitz #5017
Enhancements
-
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
masterrepo will automatically be upgraded to deep clones when the repo is updated.
Samuel Giddins #5016 -
The validator will check that all
public_header_filesandprivate_header_filesare also present insource_files.
Samuel Giddins #4936
Bug Fixes
-
The master specs repository can no longer be added via
pod repo add, but instead must be done viapod setup.
Samuel Giddins -
Print a friendly error message when the platform for a target cannot be inferred.
Samuel Giddins #4790 -
Rely on
TARGET_BUILD_DIRinstead ofCONFIGURATION_BUILD_DIRin 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)
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.
Muhammed Yavuz Nuzumlalı #4211 #4577 #4580
Enhancements
-
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
masterspecs repo exists when it has not been set up.
Samuel Giddins #4955 -
Move
${TARGET_DEVICE_ARGS}out of the quotations for--sdkin theCopy Pods Resourcesbuild phase.
seaders #4940 -
Handle when
$PATHisn'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)
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.
Marius Rackwitz #4146 -
Pass
COCOAPODS_VERSIONas environment variable when invoking theprepare_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
ibtoolin the copy resources script, fixing compilation of storyboards when targeting versions of iOS prior to iOS 8.
seaders #4913 -
Fix
pod repo lintwhen passed a path argument.
Boris Bügling #4883
1.0.0.beta.3 (2016-02-03)
Breaking
- Rename the
xcodeprojPodfile directive toproject.
Marius Rackwitz Core#298
Enhancements
- 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_FAMILYto support both iPhone and iPad for iOS resource bundle targets.
Andy Rifken -
Share user schemes of
Pods.xcodeprojafter generating deterministic UUIDS.
Samuel Giddins -
Only attempt to
importa 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)
Enhancements
-
Present a friendly error suggesting running
pod installwhen there are missing local podspecs when runningpod outdated.
Samuel Giddins #4716 -
Don't warn about setting base config when identical to current config.
Jed Lewison #4722 -
Add
user_targetsmethod to theUmbrellaTargetDescriptionin the post-install hooks context.
Samuel Giddins
Bug Fixes
-
Always fetch a
:podspecdependency's podspec when it is missing in thePodsdirectory.
Samuel Giddins #4717 -
The
Info.plistfile will now be generated properly for resource bundles, setting the properCFBundlePackageTypeand omitting theCFBundleExecutablekey.
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_rootattribute is set on the pre-install hooks context.
Samuel Giddins
1.0.0.beta.1 (2015-12-30)
Breaking
-
The
link_withPodfile DSL method has been removed in favor of target inheritance.
Samuel Giddins -
The
:exclusive => truePodfile DSL target option has been removed in favor of theinherit! :search_pathsdirective.
Samuel Giddins -
The specification of
:headdependencies has been removed.
Samuel Giddins #4673 -
The deprecated
:localdependency option has been removed in favor of the equivalent:pathoption.
Samuel Giddins -
The deprecated
dependencymethod in the Podfile DSL has been removed in favor of the equivalentpodmethod.
Samuel Giddins -
The deprecated
preferred_dependencymethod in the Specification DSL has been removed in favor of the equivalentdefault_subspecsmethod.
Samuel Giddins -
The
docset_urlSpecification attribute has been removed.
Samuel Giddins Core#284 -
Build configuration names are no longer set as pre-processor defines, but rather
POD_CONFIGURATION_$CONFIGURATION_NAMEis defined in order to lessen conflicts with pod code.
#4143
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
Enhancements
-
Add the ability to add a custom commit message when pushing a spec. Bart Jacobs #4583
-
Added support for
pod envto 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 installwhen a resource not found during in copy resources script.
Muhammed Yavuz Nuzumlalı -
Add support to track
.defsources. -
Add support to track
.deffiles as headers. Dimitris Koutsogiorgas #338 -
Pod::Installer::PostInstallHooksContextnow offers access to thesandboxobject.
Marcelo Fabri #4487 -
Improve sorting algorithm for
pod search.
Muhammed Yavuz Nuzumlalı cocoapods-search#12 -
Improve
pod searchperformance while using--fullflag.
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_dirsset will now produce frameworks with headers that respect the nesting.
Samuel Giddins -
The validator will now ensure that pods with a
header_mappings_dirshave all of their headers inside that directory.
Samuel Giddins -
Pods will be validated with the
-Wincomplete-umbrellacompiler 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.plistfile'sCFBundleIdentifieris now set via thePRODUCT_BUNDLE_IDENTIFIERbuild 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
abstractand specifying the pod inheritance mode via theinherit!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.plistfiles have aCFBundleShortVersionStringthat is precisely three dot-separated numbers.
Samuel Giddins #4421 -
Set the
APPLICATION_EXTENSION_API_ONLYbuild setting if integrating with a tvOS extension target, or a target that has the setting set toYES.
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
UIRequiredDeviceCapabilitieskey is now specified in theInfo.plistfile for tvOS pods built as frameworks.
Samuel Giddins #4514 -
Fix Swift code completion for Development Pods by using
realpathfor 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
DEBUGwill be set for all debug-based build configurations when building pods.
Samuel Giddins #4148
0.39.0 (2015-10-09)
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
0.39.0.rc.1 (2015-10-05)
Enhancements
-
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)
Breaking
- Activesupport 4 is now required, breaking compatibility with applications
locked to
3.x.y.
Enhancements
-
The
EMBEDDED_CONTENT_CONTAINS_SWIFTbuild setting will now be set when appropriate.
Samuel Giddins -
The embed frameworks script will no longer manually copy over the Swift runtime libraries on Xcode 7 and later.
Samuel Giddins earltedly DJ Tarazona #4188 -
A post-install summary of the pods installed is now printed.
Samuel Giddins #4124
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
watchsimulatorwhen validating pods with the watchOS platform.
Thomas Kollbach #4130 -
C or C++ preprocessor output files with
.iextension 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 initnow specifies iOS 8.0 as the default platform and includesuse_frameworks!for Swift projects.
Jamie Evans -
Support for the new
tvosplatform.
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, andDYLIB_COMPATIBILITY_VERSIONfor 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
platformattribute for targets without any declared pods when runningpod 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
Headersdirectory 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_fileswhen 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
- Ensure all gem files are readable.
Samuel Giddins #4085
0.39.0.beta.1 (2015-08-26)
Breaking
- The
HEADER_SEARCH_PATHSwill no longer be constructed recursively.
Samuel Giddins twoboxen #1437 #3760
Enhancements
-
Collapse the namespaced public and private pod xcconfig into one single xcconfig file.
Marius Rackwitz #3916 -
Add
--sourcesoption topushcommand.
Dimitris Koutsogiorgas #3912 -
Implicitly unlock all local dependencies when installing.
Samuel Giddins #3764 -
The resolver error message when a conflict occurred due to platform deployment target mismatches will now explain that.
Samuel Giddins #3926 -
Add
:source_providerhook to allow plugins to provide sources.
Eric Amorde #3190 #3792 -
Remove embed frameworks build phase from target types, where it is not required.
Marius Rackwitz #3905 #4028 -
Add a
--privateoption topod spec lint,pod lib lint, andpod repo pushthat will ignore warnings that only apply to public specifications and sources.
Samuel Giddins Core#190 #2682 -
Add support for dynamic
vendored_frameworksandvendored_libraries.
Samuel Giddins #1993
Bug Fixes
-
Build settings specified in
pod_target_xcconfigof a spec are also for library targets only applied to the pod target.
Marius Rackwitz #3906 -
Use APPLICATION_EXTENSION_API_ONLY for watchOS 2 extensions.
Boris Bügling #3920 -
Prevent copying resources to installation directory when
SKIP_INSTALLis enabled.
Dominique d'Argent #3971 -
Embed frameworks into app and watch extensions.
Boris Bügling #4004 -
Fix missing
$(inherited)for generated xcconfigLIBRARY_SEARCH_PATHSandHEADER_SEARCH_PATHSbuild settings.
Tyler Fox #3908 -
Fix source locking/unlocking.
Samuel Giddins #4059 -
Include the
-ObjClinker flag when staticvendored_frameworksare present.
Samuel Giddins #3870 #3992
0.38.2 (2015-07-25)
Bug Fixes
-
Fix generation of xcconfig files that specify both
-iquoteand-isystemheaders.
Russ Bishop #3893 -
Pods integrated as static libraries can no longer be imported as modules, as that change had unexpected side-effects.
Boris Bügling #3898 #3879 #3888 #3886 #3889 #3884 -
Source file locking now happens after plugin and podfile post-install hooks have run.
Samuel Giddins #3529 -
Only set project, dylib, and compatibility versions to valid, three integer values.
Samuel Giddins #3887
0.38.1 (2015-07-23)
Enhancements
-
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
.xcconfigfile only has the settings for the appropriate build configuration.
Samuel Giddins #3842 -
Show the correct error when
pod spec lintfinds multiple podspecs, and at least one of them fails linting.
Samuel Giddins #3869 -
Set header search paths properly on the user target when
vendored_librariesPods 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)
Enhancements
- 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
- Properly merge the
user_target_xcconfigs of multiple subspecs.
Samuel Giddins #3813
0.38.0.beta.2 (2015-07-05)
Enhancements
-
The resolver will now take supported platform deployment targets into account when resolving dependencies.
Samuel Giddins #2443 -
Pods.xcodeprojwill now be written with deterministic UUIDs, vastly reducing project churn and merge conflicts. This behavior can be disabled via the newCOCOAPODS_DISABLE_DETERMINISTIC_UUIDSenvironment variable.
Samuel Giddins -
cocoapods-statsis now a default plugin.
Samuel Giddins
Bug Fixes
-
Ensure that the
prepare_commandis run even when skipping the download cache.
Samuel Giddins #3674 -
Public headers inside a directory named
frameworkshould be linked in the sandbox.
Vincent Isambart #3751 -
Properly support targets with spaces in their name in the embed frameworks script.
Samuel Giddins #3754 -
Don't add the
-ObjClinker flag if it's unnecessary.
Samuel Giddins #3537 -
Ensure that no duplicate framework or target dependencies are created.
Samuel Giddins #3763
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.xcodeprojneed 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.
Samuel Giddins #2390 -
The
Installeris passed directly to thepre_installandpost_installhooks defined in the Podfile, instead of the previously usedHooks::InstallerRepresentation.
Marius Rackwitz #3648 -
Deprecate the
xcconfigattribute in the Podspec DSL, which is replaced by the new attributespod_target_xcconfiganduser_target_xcconfig.
Marius Rackwitz CocoaPods#3465
Enhancements
-
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 listandpod cache cleanallows 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
PreInstallHooksContextobject. This also renames the post-install hooks fromHooksContexttoPostInstallHooksContext.
Orta Therox #3540 -
Allow passing additional arguments to
pod lib create, which then get passed as-is to theconfigurescripts.
Samuel Giddins #2160 -
Use
-analyzer-disable-all-checksto disable static analyzer for pods withinhibit_warningsenabled (requires Xcode >= 6.1).
Dieter Komendera #2402 -
Cache globbing in
PathListto speed uppod 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 updatewill now accept root pod names, even when only subspecs are installed.
Samuel Giddins #3689 -
Support for the new
watchosplatform.
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_LIBTOOLFLAGSis no longer set to the value ofOTHER_LDFLAGS. If you want to create a static library that includes all dependencies for (internal/external) distribution then you should use a tool likecocoapods-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
gitsource where a Podspec for the requested pod is not found will have a more helpful error message.
Samuel Giddins -
pod outdatedwill now accept the--no-repo-updateand--no-integrateoptions.
Samuel Giddins -
Fixes an issue which prevented using a custom
CONFIGURATION_BUILD_DIRwhen 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)
Enhancements
-
Schemes of development pods will now be shared.
Boris Bügling #3600 -
Recognizes incomplete cache when the original download of a pod was interrupted.
Marius Rackwitz #3561 -
Allow opting out of pod source locking, meaning
pod tryyields editable projects.
Samuel Giddins cocoapods-try#31
Bug Fixes
-
pod repo pushwill now find and push JSON podspecs.
#3494 Kyle Fuller -
Flush stdin/stderr and wait a bit in
executable.
Boris Bügling #3500
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,.cxxand.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.locktoPods/Manifest.lockso 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
Bug Fixes
- Print the UTF-8 warning to STDERR.
Matt Holgate
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)
Enhancements
-
Add environment variable
COCOAPODS_SKIP_UPDATE_MESSAGEto disable new version message.
Andrea Mazzini #3364 -
Use user project's object version for pods project.
Boris Bügling #253
Bug Fixes
-
Adding
$(inherited)toFRAMEWORK_SEARCH_PATHSbuild setting in xcconfig for aggregate.
Tomohiro Kumagai #3429 -
Don't crash when the downloader can't find an appropriate podspec in a
gitpod.
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_filesonly 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-arccompiler 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)
Enhancements
-
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 installand linting, potentially by several orders of magnitude.
Samuel Giddins #2863 #3172 -
Add a
--fail-fastoption to bothpod spec lintandpod lib lintthat 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 :pathoption.
Kyle Fuller #1549 #3384 #3358
0.36.3 (2015-03-31)
Bug Fixes
- Fix using the downloader.
Samuel Giddins #3344 #3345
0.36.2 (2015-03-31)
Bug Fixes
-
Unique resources passed to the script generator.
Diego Torres #3315 #3327 -
Update the
Manifest.lockwhen migrating local podspecs to JSON. This fixes runningpod installafter upgrading to0.36.
Samuel Giddins #3292 #3299
0.36.1 (2015-03-27)
Bug Fixes
-
Workarounds(✻) for the resource script's handling of
.xcassetfiles.
sodas Tony Li Chongyu Zhu #3247 #3303 -
Fix the sanitization of configuration names in the generated target environment header.
Samuel Giddins #3301
(✻) 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 differentxcassetsfor 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
Enhancements
- 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_PATHwas added toFRAMEWORK_SEARCH_PATHS, but never created.
Marius Rackwitz #3217 -
Allows the usage of
:headdependencies 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
:headdependency.
Samuel Giddins #3230 -
Fix the
OTHER_SWIFT_FLAGSgenerated, so it inherits previous definitions.
Daniel Thorpe #2983
0.36.0.rc.1 (2015-02-24)
Enhancements
-
Set the
APPLICATION_EXTENSION_API_ONLYbuild 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
TMPDIRfor 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 PODNAMEwill 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-librariesoption allows linting as a static library.
Boris Bügling #2912 -
Adding Xcode Legacy build location support for default Pods.xcodeproj. It defaults to
${SRCROOT}/../buildbut can be changed in apost_installhook by using theProject#symroot=writer.
Sam Marshall
Bug Fixes
-
Set
SKIP_INSTALL=YESfor 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-updateflag.
Samuel Giddins #3137 -
Fix the
OTHER_SWIFT_FLAGSgenerated, so#if COCOAPODSworks in Swift.
Samuel Giddins #2983 -
Output a properly-formed
Podfilewhen runningpod initwith 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 listandpod ipc podfilewas 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)
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.
Kyle Fuller #2946
Enhancements
-
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
warningduring linting instead ofnote.
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
errorin 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
:podspecoption 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)
CocoaPods • CocoaPods-Core • Xcodeproj • CLAide • Molinillo • cocoapods-downloader • cocoapods-try • cocoapods-trunk • cocoapods-plugins
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_namein 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.
Breaking
-
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. -
Only the hooks specified by usage of the
plugindirective of thePodfilewill 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
Enhancements
-
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/PrivatefromHeaders/Build. Since some SCM ignore templates includebuildby default, this makes it easier to check in thePods/directory.
Samuel Giddins #2623 -
Validate that a specification's
public_header_filesandprivate_header_filesfile 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-integrateinstallation 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:hgoptions in yourPodfilethat 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:hgdependencies 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)
CocoaPods • CocoaPods-Core • Xcodeproj • cocoapods-downloader
For more details, see
Enhancements
-
Allow the specification of file patterns for the Podspec's
requires_arcattribute.
Kyle Fuller Samuel Giddins #532 -
From now on, pods installed directly from their repositories will be recorded in the
Podfile.lockfile 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:hgoptions in yourPodfile.
Samuel Giddins #1058
Bug Fixes
-
Fix an output formatting issue with various commands like
pod searchandpod 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 createwith 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 ofCLANG_ENABLE_OBJC_ARC = 'NO'. For pods withrequires_arc = falsethe-fno-objc-arcflag 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
Enhancements
-
pod search,pod spec which,pod spec catandpod spec editnow use plain text search by default instead of a regex. Especiallypod search UIView+UInow searches for pods containing exactlyUIView+UIin their name, not trying to interpret the+as a regular expression. Note: You can still use a regular expression with the new--regexflag that has been added to these commands, e.g.pod search --regex "(NS|UI)Color". Olivier Halligon Core#188 -
Use
--allow-warningsrather than--error-onlyfor pod spec validation Daniel Tomlinson #2820
0.35.0.rc2 (2014-11-06)
Enhancements
- Allow the resolver to fail faster when there are unresolvable conflicts
involving the Lockfile.
Samuel Giddins
Bug Fixes
-
Allows pre-release spec versions when a requirement has an external source specified.
Samuel Giddins #2768 -
We no longer require git version 1.7.5 or greater.
Kyle Fuller -
Fix the usage of
:headpods.
Samuel Giddins #2789 -
Show a more informative message when attempting to lint a spec whose source could not be downloaded.
Samuel Giddins #2667 #2759
0.35.0.rc1 (2014-11-02)
Highlighted Enhancements That Need Testing
-
The
Resolverhas been completely rewritten to use Molinillo, an iterative dependency resolution algorithm that automatically resolves version conflicts. The order in which dependencies are declared in thePodfileno longer has any effect on the resolution process.You should ensure that
pod install,pod updateandpod update [NAME]work as expected and install the correct versions of your pods during this RC1 release. Samuel Giddins #978 #2002
Breaking
-
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
Enhancements
-
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
masterspec-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 onpod install.
Eloy Durán -
The
pod pushcommand has been removed as it has been deprecated in favour ofpod repo pushin 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 installwill 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::FileAccessornow optionally includes expanded paths of headers of vendored frameworks inpublic_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
XCConfigIntegratorwhere 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/updatewhile 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_LIBTOOLFLAGSinstead ofOTHER_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)
Enhancements
-
Make the output of
pod outdatedshow what runningpod updatewill do. Takes into account the sources specified in thePodfile.
Samuel Giddins #2470 -
Allows the use of the
GCC_PREPROCESSOR_DEFINITIONflag${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
Validatorto only use specific sources. Allows customizable source forpod spec lintandpod lib lint, with both defaulting tomaster. Samuel Giddins #2543 cocoapods-trunk#28 -
Takes into account the sources specified in
Podfilerunningpod outdated.
Samuel Giddins #2553 -
Ensures that the master repo is shallow cloned when added via a Podfile
sourcedirective.
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 installwith 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
.gitin repository URLs when trying to find a matching specs repo.
Samuel Giddins #2526
0.34.0 (2014-09-26)
For more details, see
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. For example:source 'https://github.com/artsy/Specs.git' source 'https://github.com/CocoaPods/Specs.git'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
Enhancements
- Added the
pod repo listcommand which lists all the repositories.
Luis Ascorbe #1455
Bug Fixes
-
Works around an Xcode issue where linting would fail even though
xcodebuildactually succeeds. Xcode.app 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 installwould 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 createas an argument.
Fabio Pelosin #1543
0.34.0.rc2 (2014-09-16)
Bug Fixes
-
Fixes an issue where
pod lib lintwould crash if a podspec couldn't be loaded.
Kyle Fuller #2147 -
Fixes an issue where
pod initwould not addsource 'master'to newly created Podfiles.
Ash Furrow #2473
0.34.0.rc1 (2014-09-13)
Breaking
-
The use of the
$PODS_ROOTenvironment variable has been deprecated and should not be used. It will be removed in future versions of CocoaPods.
#2449 -
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' -
The
Podsdirectory 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.rbfile in./lib.
Fabio Pelosin CLAide#28 -
The specification
requires_arcattribute now defaults to true.
Fabio Pelosin CocoaPods#267
Enhancements
-
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 endThe
installer_contextis an instance of thePod::Installer:HooksContextclass 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-integrateoption is specified.
Eloy Durán -
Properly quote the
-isystemvalues 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-directoryoption.
Samuel E. Giddins #2183 -
Now the
plutiltool 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
-
Fix
pod repo pushto first check if a Specs directory exists and if so push there.
Edward Valentini #2060 -
Fix
pod outdatedto not include subspecs.
Ash Furrow #2136 -
Always evaluate podspecs from the original podspec directory. This fixes an issue when depending on a pod via
:pathand that pod's podspec uses relative paths.
Kyle Fuller pod-template#50 -
Fix spec linting to not warn for missing license file in subspecs.
Fabio Pelosin Core#132 -
Fix
pod initso that it doesn't recurse when checking for Podfiles.
Paddy O'Brien #2181 -
Fix missing XCTest framework in Xcode 6.
Paul Williamson #2296 -
Support multiple values in
ARCHS.
Robert Zuber #1904 -
Fix static analysis in Xcode 6.
Samuel E. Giddins #2402 -
Fix an issue where a version of a spec will not be locked when using multiple subspecs of a podspec.
Kyle Fuller Fabio Pelosin #2135 -
Fix an issue using JSON podspecs installed directly from a lib's repository.
Kyle Fuller #2320 -
Support and use quotes in the
OTHER_LDFLAGSof xcconfigs to avoid issues with targets containing a space character in their name.
Fabio Pelosin
0.33.1 (2014-05-20)
Bug Fixes
-
Fix
pod spec lintforjsonpodspecs.
Fabio Pelosin #2157 -
Fixed downloader issues related to
jsonpodspecs.
Fabio Pelosin #2158 -
Fixed
--no-ansiflag in help banners.
Fabio Pelosin #34
0.33.0 (2014-05-20)
For more details, see
Breaking
- The deprecated
pre_installand thepod_installhooks of the specification class have been removed.
Fabio Pelosin #2151 #2153
Enhancements
-
Added the
cocoapods-trunkplugin which introduces thetrunksubcommand.
Fabio Pelosin #2151 #2153 -
The
pod pushsub-command has been moved to thepod repo pushsub-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 zshCurrently only the Z shell is supported.
Fabio Pelosin CLAide#25 CLAide#20 CLAide#19 CLAide#17 CLAide#12 -
The
--versionflag is now only supported for the rootpodcommand. If used in conjunction with the--verboseflag the version of the detected plugins will be printed as well.
Fabio Pelosin CLAide#13 CLAide#14 -
The extremely meta
cocoaPods-pluginsis 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_urlanddocset_urlin 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
helpwhen running thepodcommand instead of defaulting topod install.
Kyle Fuller #1771
Bug Fixes
-
Show the actual executable when external commands fail.
Boris Bügling #2102 -
Fixed support for file references in the workspace generated by CocoaPods.
Kyle Fuller Fabio Pelosin Xcodeproj#105 -
Show a helpful error message when reading version information with merge conflict.
Samuel E. Giddins #1853 -
Show deprecated specs when invoking
pod outdated.
Samuel E. Giddins #2003 -
Fixes an issue where
pod repo updatemay start an un-committed merge.
Kyle Fuller #2024
0.32.1 (2014-04-15)
Bug Fixes
- Fixed the Podfile
default_subspecattribute in nested subspecs.
Fabio Pelosin #2050
0.32.0 (2014-04-15)
For more details, see
Enhancements
-
Allow to update only a list of given pods with
pod update [POD_NAMES...].
Marius Rackwitz CocoaPods#760 -
pod updateprints the previous version of the updated pods.
Andrea Mazzini #2008 -
pod updatefalls back topod installif no Lockfile is present.
Marius Rackwitz -
File references in the Pods project for development Pods now are absolute if the dependency is specified with an absolute paths.
Samuel Ford #1042 -
Added
deprecatedanddeprecated_in_favor_ofattributes to Specification DSL.
Paul Young Core#87 -
Numerous improvements to the validator and to the linter.
- Validate the reachability of screenshot URLs in podspecs while linting a
specification.
Kyle Fuller #2010 - Support HTTP redirects when linting homepage and screenshots.
Boris Bügling #2027 - The linter now checks
frameworkandlibraryattributes for invalid strings.
Paul Williamson Fabio Pelosin Core#66 Core#96 Core#105 - The Linter will not check for comments anymore.
Fabio Pelosin Core#108 - Removed legacy checks from the linter.
Fabio Pelosin Core#108 - Added logic to handle subspecs and platform scopes to linter check of
the
requries_arcattribute.
Fabio Pelosin CocoaPods#2005 - The linter no longer considers empty a Specification if it only specifies the
resource_bundleattribute.
Joshua Kalpin #63 #95
- Validate the reachability of screenshot URLs in podspecs while linting a
specification.
-
pod lib createis now using theconfigurefile instead of the_CONFIGURE.rbfile.
Piet Brauer Orta Therox -
pod lib createnow disallows any pod name that begins with a.
Dustin Clark #2026 Core#97 Core#98 -
Prevent the user from using
podcommands as root.
Kyle Fuller #1815 -
Dependencies declared with external sources now support HTTP downloads and have improved support for all the options supported by the downloader.
Fabio Pelosin -
An informative error message is presented when merge conflict is detected in a YAML file.
Luis de la Rosa #69 #100
Bug Fixes
-
Fixed the Podfile
default_subspecattribute in nested subspecs.
Fabio Pelosin #1021 -
Warn when including deprecated pods Samuel E. Giddins #2003
0.31.1 (2014-04-01)
Minor Enhancements
- The specification now strips the indentation of the
prefix_headerandprepare_commandto aide their declaration as a here document (similarly to what it already does with the description).
Fabio Pelosin Core#51
Bug Fixes
- Fix linting for Pods which declare a private repo as the source.
Boris Bügling Core#82
0.31.0 (2014-03-31)
For more details, see
Enhancements
-
Warnings are not promoted to errors anymore to maximise compatibility with existing libraries.
Fabio Pelosin #1629 -
Include the versions of the Pods to the output of
pod list.
Stefan Damm Robert Zuber #1617 -
Generated prefix header file will now have unique prefix_header_contents for Pods with subspecs.
Luis de la Rosa #1449 -
The linter will now check the reachability of the homepage of Podspecs during a full lint.
Richard Lee Fabio Pelosin #1704 Core#70 -
Improved detection of the last version of a specification in
pod specsubcommands.
Laurent Sansonetti #1953 -
Display advised settings for Travis CI in the warning related presented when the terminal encoding is not set to UTF-8.
Richard Lee #1933 #1941 -
Unset the
CDPATHenv variable before shelling-out toprepare_command.
Marc Boquet #1943
Bug Fixes
-
Resolve crash related to the I18n deprecation warning.
Eloy Durán #1950 -
Fix compilation issues related to the native Extension of Xcodeproj.
Eloy Durán -
Robustness against user Git configuration and against merge commits in
pod reposubcommands.
Boris Bügling #1949 #1978 -
Gracefully inform the user if the
:headoption is not supported for a given download strategy.
Boris Bügling #1947 #1958 -
Cleanup a pod directory if error occurs while downloading.
Alex Rothenberg #1842 #1960 -
No longer warn for Github repositories with OAuth authentication.
Boris Bügling #1928 Core#77 -
Fix for when using
s.versionas the:tagfor a git repository in a Podspec.
Joel Parsons #1721 Core#72 -
Improved escaping of paths in Git downloader.
Vladimir Burdukov cocoapods-downloader#14 -
Podspec without explicitly set
requires_arcattribute no longer passes the lint.
Richard Lee #1840 Core#71 -
Properly quote headers in the
-isystemcompiler flag of the aggregate targets.
Eloy Durán #1862 #1894
0.30.0 (2014-03-29)
For more details, see
Enhancements
-
Radically reduce first run pod setup bandwidth by creating a shallow clone of the ‘master’ repo by default. Use the
--no-shallowoption to perform a full clone instead.
Jeff Verkoeyen #1803 -
Improves the error message when searching with an invalid regular expression.
Kyle Fuller -
Improves
pod initto save Xcode project file in Podfile when one was supplied.
Kyle Fuller -
Adds functionality to specify a template URL for the
pod lib createcommand.
Piet Brauer
Bug Fixes
-
Fixes a bug with
pod repo removesilently handling permission errors.
Kyle Fuller #1778 -
pod pushnow 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)
CocoaPods • CocoaPods-core • cocoapods-downloader
For more details, see
Breaking
-
The command
podfile_infois 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 speccommand returns a JSON representation and the YAML specifications are not supported anymore. JSON specifications adopt the.podspec.jsonextension. Fabio Pelosin #1568
Enhancements
-
Introduced
pod trythe 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 pushcommand 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 cocoapods.org when searching using the option--web. Options--iosand--osxare fully supported. Florian Hanke #1643 -
The
pod search <query>command now supports multiword queries when using the--weboption. Florian Hanke #1643
Bug Fixes
-
Fixed a bug which resulted in
pod lib lintnot being able to find the headers.
Fabio Pelosin #1566 -
Fixed the developer frameworks search paths so that
$(SDKROOT)/Developer/Library/Frameworksis used for iOS and$(DEVELOPER_LIBRARY_DIR)/Frameworksis 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--silentis 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
.aor.dylib(i.e.z.dylib). It will also display an error if it begins withlib(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
/tmpbeing a symlink to/private/tmp. This affected mostlypod lib lint, causing it to fail when the Pod usedprefix_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)
CocoaPods • CocoaPods-core • CLAide
For more details, see
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
xcassetswithactoolnow usesUNLOCALIZED_RESOURCES_FOLDER_PATHinstead ofPRODUCT_NAME.WRAPPER_EXTENSIONas output directory as it is more accurate and allows the project to overwriteWRAPPER_NAME.
Marc Knaup #1556 -
Added a condition to avoid compiling xcassets when
WRAPPER_EXTENSIONis 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
actoolis available when compilingxcassets. 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 pushcommand 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)
CocoaPods • cocoapods-core • Xcodeproj
For more details, see
Enhancements
-
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_withmethod of the Podfile DSL no longer need to be explicitly passed as an array.link_with ['target1', 'target2']can now be written aslink_with 'target1', 'target2'.
Adam Sharp Core#30 -
The copy resources script now compiles xcassets resources.
Ulrik Damm #1427 -
pod reponow support aremove ['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)
CocoaPods • cocoapods-core • Xcodeproj
Bug Fixes
-
Fixed a crash which was causing a failure in
pod lib createif 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)
CocoaPods • cocoapods-core • Xcodeproj
For more details, see
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.
Fabio Pelosin #1185 -
Installations which don't integrate a user target (lint subcommands and
--no-integrateoption) 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
Subspecgroup 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_urlDSL 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)
CocoaPods • cocoapods-core • Xcodeproj
Enhancements
-
Added support for Xcode 5.
The generated Pods Xcode project is now compatible with
arm64projects 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:
- The Pods Xcode project now sets the
ONLY_ACTIVE_ARCHbuild setting toYESin theDebugconfiguration. You will have to set the same on your project/target, otherwise the build will fail. - Ensure your project/target has an
ARCHSvalue set, otherwise the build will fail. - When building a iOS project from the command-line, with the
xcodebuildtool that comes with Xcode 4, you’ll need to completely disable this setting by appending to your build command:ONLY_ACTIVE_ARCH=NO.
- The Pods Xcode project now sets the
-
Speed up project generation in
pod installandpod 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:
- The rsync task copies symlinks into the App Bundle, producing an invalid
app. This change add
--copy-linksto the rsync invocation to ensure the target files are copied rather than the symlink. - The Copy Resources script uses
TARGET_BUILD_DIRwhich points to the App Archiving folder during an Archive action. Switching toBUILT_PRODUCTS_DIRinstead ensures that the path is correct for all actions and configurations.
- The rsync task copies symlinks into the App Bundle, producing an invalid
app. This change add
-
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)
CocoaPods • cocoapods-core • Xcodeproj • cocoapods-downloader
Enhancements
-
Added
pod initcommand which generates a Podfile according to the targets of the project stored in the working directory and to the templates stored in the~/.cocoapods/templatesfolder. Two templates are supported:- the
Podfile.defaulttemplate for regular targets. - and the
Podfile.testtemplate for test targets. Ian Ynda-Hummel #1106 #1045
- the
-
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 thelibPods.astatic library is not stripped for all configurations, as explained in #1217.
Cédric Luthi
#1294 -
Added basic support for Bazaar repositories.
Fred McCann
cocoapods-downloader#4
Bug Fixes
-
Fixed crash in
pod spec cat. -
Use the
TARGET_BUILD_DIRenvironment variable for installing resource bundles.
Cédric Luthi
#1268 -
CoreData versioned models are now properly handled respecting the contents of the
.xccurrentversionfile.
Ashton-W
#1288, Xcodeproj#83 -
OS X frameworks are now copied to the Resources folder using rsync to properly overwrite existing files.
Nikolaj Schumacher
#1063 -
User defined build configurations are now added to the resource bundle targets.
#1309
0.23.0 (2013-08-08)
0.23.0.rc1 (2013-08-02)
CocoaPods • cocoapods-core • Xcodeproj • cocoapods-downloader
Enhancements
-
Added
prepare_commandattribute to Specification DSL. The prepare command will replace thepre_installhook. Thepost_installhook has also been deprecated. #1247The 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_bundlesattribute to the Specification DSL.
#743 #1186 -
Added
vendored_frameworksattribute to the Specification DSL.
#809 #1075 -
Added
vendored_librariesattribute to the Specification DSL.
#809 #1075 -
Restructured
.cocoapodsfolder to contain repos in a subdirectory.
Ian Ynda-Hummel #1150 -
Improved
pod spec createtemplate.
#1223 -
Added copy&paste-friendly dependency to
pod search.
#1073 -
Improved performance of the installation of Pods with git sources which specify a tag.
#1077 -
Core Data
xcdatamodeldfiles are now properly referenced from the Pods project.
#1155 -
Removed punctuation check from the specification validations.
#1242 -
Deprecated the
documentationattribute of the Specification DSL.
Core#20
Bug Fixes
- Fix copy resource script issue related to filenames with spaces.
Denis Hennessy #1231
0.22.3 (2013-07-23)
Enhancements
- Add support for .xcdatamodel resource files (in addition to .xcdatamodeld). #1201
Bug Fixes
-
Always exlude
USE_HEADERMAPfrom the user’s project. #1216 -
Use correct template repo when using the
pod lib createcommand. #1214 -
Fixed issue with
pod pushfailing 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)
CocoaPods • cocoapods-core • Xcodeproj
Enhancements
- 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
xcconfigattribute of apodspecare 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)
CocoaPods • cocoapods-core • Xcodeproj
Enhancements
-
Added the
pod lib createsubcommand 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. #850 -
Added the
pod lib lintsubcommand 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 deprecatedpod 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 https://github.com/CocoaPods/CocoaPods/blob/master/lib/cocoapods/config.rb#L7-L25 #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_PATHSbuild 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_pathmethod. #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)
CocoaPods • cocoapods-core • Xcodeproj
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)
CocoaPods • cocoapods-core • Xcodeproj
Enhancements
-
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 Xcode.app 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)
CocoaPods • cocoapods-core • cocoapods-downloader • Xcodeproj • CLAide
Enhancements
-
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-podcommand instead. E.g.:$ sandbox-pod installIn case of issues, be sure to check
/var/log/system.logfor ‘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
:pathoption when referencing Pods that are not stored within the directory of the Podfile. -
The naked
podcommand now defaults topod 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_warningsper pod is now working #1032 - Fix copy resources script for iOS < 6 and OS X < 10.8 by removing the
--reference-external-strings-fileflag. #1030 - Fixed issues with the
:headoption 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)
Enhancements
- 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=1macro in the Pod and the Client targets. This is useful for libraries which conditionally expose interfaces. #903 - Added support for the
private_header_filesattribute of the Specification DSL. #998 - CocoaPods now defines the deployment target of the Pods project computed as the minimum deployment target of the Pods libraries. #556
- Added
pod podfile-infocommand. Shows list of used Pods and their info in a project or supplied Podfile. Options:--all- with dependencies.--md- in Markdown. #855 - Added
pod helpcommand. You can still use the old format with --help flag. #957 - Restored support for Podfiles named
CocoaPods.podfile. Moreover, the experimental YAML format of the Podfile now is associated with files namedCocoaPods.podfile.yaml. #1004
Deprecations
- The
:localflag in Podfile has been renamed to:pathand the old syntax has been deprecated. #971
Bug fixes
- Fixed issue related to
pod outdatedand external sources. #954 - Fixed issue with .svn folders in copy resources script. #972
0.18.1 (2013-04-10)
Bug fixes
- Fixed a bug introduced in 0.18 which cause compilation issue due to the quoting of the inherited value in the xcconfigs. #956
- Robustness against user targets including build files with missing file references. #938
- Partially fixed slow performance from the command line #919
0.18.0 (2013-04-08)
CocoaPods • cocoapods-core • Xcodeproj
Enhancements
- Added the ability to inhibit warnings per pod.
Just pass
:inhibit_warnings => trueinline. This feature has been implemented by Marin Usalj (@mneorr). #10 #934 - Inhibiting warnings will also suppress the warnings of the static analyzer.
- A new build phase has been added to check that your
installation is in sync with the
Podfile.lockand fail the build otherwise. The new build phase will not be added automatically to targets already integrated with CocoaPods, for integrating targets manually see this comment. This feature has been implemented by Ullrich Schäfer (@stigi). #946 - The
pod searchcommands now accepts the--iosand the--osxarguments to filter the results by platform. #625 - The developer frameworks are automatically added if
SenTestingKitis detected. There is no need to specify them in specifications anymore. #771 - The
--no-updateargument of theinstall,update,outdatedsubcommands has been renamed to--no-repo-update. #913
Bug fixes
- Improved handling for Xcode projects containing non ASCII characters. Special thanks to Cédric Luthi (@0xced), Vincent Isambart (@vincentisambart), and Manfred Stienstra (@Manfred) for helping to develop the workaround. #926
- Corrected improper configuration of the PODS_ROOT xcconfig variable in non-integrating installations. #918
- Improved support for pre-release versions using dashes. #935
- Documentation sets are now namespaced by pod solving improper attribution. #659
0.17.2 (2013-04-03)
Bug fixes
- Fix crash related to the specification of the workspace as a relative path. #920
- Fix an issue related to the
podspecdsl directive of the Podfile for specifications with internal dependencies. #928 - Fix crash related to search from the command line. #929
Ancillary enhancements
- Enabled the FileList deprecation warning in the Linter.
- CocoaPods will raise if versions requirements are specified for dependencies with external sources.
- The exclude patterns now handle folders automatically.
0.17.1 (2013-03-30)
Bug fixes
- Always create the CACHE_ROOT directory when performing a search. #917
0.17.0 (2013-03-29)
GM
Bug fixes
- Don’t break when specifying doc options, but not appledoc ones. #906
- Sort resolved specifications. #907
- Subspecs do not need to include HEAD information. #905
Ancillary enhancements
- Allow the analyzer to do its work without updating sources. motion-cocoapods#50
rc7
Bug fixes
- Fixed an issue which lead to the missing declaration of the plural directives of the Specification DSL. #816
- The resolver now respects the order of specification of the target definitions.
- Restore usage of cache file to store a cache for expensive stats.
- Moved declaration of
Pod::FileListto CocoaPods-core.
Ancillary enhancements
- Fine tuned the Specification linter and the health reporter of repositories.
- Search results are sorted.
rc6
Bug fixes
- CocoaPods updates the repositories by default. #872
- Fixed a crash which was present when the Podfile specifies a workspace. #871
- Fix for a bug which lead to a broken installation in paths containing brackets and other glob metacharacters. #862
- Fix for a bug related to the case of the paths which lead to clean all files in the directories of the Pods.
Ancillary enhancements
- CocoaPods now maintains a search index which is updated incrementally instead
of analyzing all the specs every time. The search index can be updated
manually with the
pod ipc update-search-indexcommand. - Enhancements to the
pod repo lintcommand. - CocoaPods will not create anymore the pre commit hook in the master repo
during setup. If already created it is possible remove it deleting the
~/.cocoapods/master/.git/hooks/pre-commitpath. - Improved support for linting and validating specs repo.
rc5
Bug fixes
- The
--no-cleanargument is not ignored anymore by the installer. - Proper handling of file patterns ending with a slash.
- More user errors are raised as an informative.
rc4
Bug fixes
- Restored compatibility with
Podfile::TargetDefinition#copy_resources_script_namein the Podfile hooks. - Updated copy resources script so that it will use base internationalization #846
- Robustness against an empty configuration file.
- Fixed a crash with
pod push#848 - Fixed an issue which lead to the creation of a Pods project which would crash Xcode. #854
- Fixed a crash related to a
PBXVariantGrouppresent in the frameworks build phase of client targets. #859
Ancillary enhancements
- The
podspecoption of thepoddirective of the Podfile DSL now accepts folders.
rc3
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.17.0.rc2...0.17.0.rc3 • Xcodeproj)
Bug fixes
- CocoaPods will not crash anymore if the license file indicated on the spec doesn't exits.
- Pre install hooks are called before the Pods are cleaned.
- Fixed and issue which prevent the inclusion of OTHER_CFLAGS and OTHER_CPLUSPLUSFLAGS in the release builds of the Pods project.
- Fixed
pod lint --local - Fixed the
--allow-warningsofpod push#835 - Added
copy_resources_script_nameto the library representation used in the hooks. #837
Ancillary enhancements
- General improvements to
pod ipc. - Added
pod ipc replsubcommand.
rc2
Bug fixes
- Restored output coloring.
- Fixed a crash related to subspecs #819
- Git repos were not cached for dependencies with external sources. #820
- Restored support for directories for the preserve_patterns specification attribute. #823
rc1
CocoaPods • Xcodeproj • cocoapods-core • cocoapods-downloader
Notice
At some point in future the master repo will be switched to the YAML format of specifications. This means that specifications with hooks (or any other kind of dynamic logic) will not be accepted. Please let us know if there is need for other DSL attributes or any other kind of support.
Currently the following specifications fail to load as they depended on the CocoaPods internals and need to be updated:
- LibComponentLogging-pods/0.0.1/LibComponentLogging-pods.podspec
- RestKit/0.9.3/RestKit.podspec
- Three20/1.0.11/Three20.podspec
- ARAnalytics/1.1/ARAnalytics.podspec
Other specifications, might present compatibility issues for the reasons presented below.
Breaking
- Subspecs do not inherit the files patterns from the parent spec anymore. This feature made the implementation more complicated and was not easy to explain to podspecs maintainers. Compatibility can be easily fixed by adding a 'Core' subspec.
- Support for inline podspecs has been removed.
- The support for Rake::FileList is being deprecated, in favor of a more consistent DSL. Rake::FileList also presented issues because it would access the file system as soon as it was converted to an array.
- The hooks architecture has been re-factored and might present incompatibilities (please open an issue if appropriate).
- The
requires_arcattribute default value is transitioning fromfalsetotrue. In the meanwhile a value is needed to pass the lint. - Deprecated
copy_header_mappinghook. - Deprecated
exclude_header_search_pathsattribute. - External sources are not supported in the dependencies of specifications anymore. Actually they never have been supported, they just happened to work.
DSL
- Podfile:
- It is not needed to specify the platform anymore (unless not integrating) as CocoaPods now can infer the platform from the integrated targets.
- Specification:
preferred_dependencyhas been renamed todefault_subspec.- Added
exclude_filesattribute. - Added
screenshotsattribute. - Added default values for attributes like
source_files.
Enhancements
- Released preview documentation.
- CocoaPods now has support for working in teams and not committing the Pods folder, as it will keep track of the status of the Pods folder. #552
- Simplified installation: no specific version of ruby gems is required anymore.
- The workspace is written only if needed greatly reducing the occasions in which Xcode asks to revert.
- The Lockfile is sorted reducing the SCM noise. #591
- Added Podfile, Frameworks, and Resources to the Pods project. #647 #588
- Adds new subcommand
pod spec cat NAMEto print a spec file to standard output. - Specification hooks are only called when the specification is installed.
- The
--no-cleanoption of thepod spec lintcommand now displays the Pods project for inspection. - It is now possible to specify default values for the configuration in
~/.cocoapods/config.yaml(default values). - CocoaPods now checks the checksums of the installed specifications and reinstalls them if needed.
- Support for YAML formats of the Podfile and the Specification.
- Added new command
pod ipcto provide support for inter process communication through YAML formats. - CocoaPods now detects if the folder of a Pod is empty and reinstalls it. #534
- Install hooks and the
prefix_header_contentsattribute are supported in subspecs. #617 - Dashes are now supported in the versions of the Pods. #293
Bug fixes
- CocoaPods is not confused anymore by target definitions with different activated subspec. #535
- CocoaPods is not confused anymore by to dependencies from external sources. #548
- The git cache will always update against the remote if a tag is requested, resolving issues where library maintainers where updating the tag after a lint and would be confused by CocoaPods using the cached commit for the tag. #407 #596
Codebase
- Major clean up and refactor of the whole code base.
- Extracted the core classes into cocoapods-core gem.
- Extracted downloader into cocoapods-downloader.
- Extracted command-line command & option handling into CLAide.
0.16.4 (2013-02-25)
Enhancements
Bug fixes
- Explicitely require
datein the gemspec for Ruby 2.0.0. 34da3f7
0.16.3 (2013-02-20)
Bug fixes
- Only flatten tarballs, not zipballs, from HTTP sources. A zipball can contain single directories in the root that should be preserved, for instance a framework bundle. This reverts part of the change in 0.16.1. NOTE This will break some podspecs that were changed after 0.16.1. #783 #727
- Never consider aggregate targets in the user’s project for integration. #729 #784
- Support comments on all build phases, groups and targets in Xcode projects. #51
- Ensure default Xcode project values are copied before being used. b43087c
- Block assertions in Release builds. #53 #803 #802
Enhancements
- Compile Core Data model files. #795
- Add
Xcodeproj::Differ, which shows differences between Xcode projects. 308941e
0.16.2 (2013-02-02)
Bug fixes
- Quote storyboard and xib paths in ‘copy resource’ script. #740
- Fix use of
podspecdirective in Podfile with no options specified. #768 - Generate Mac OS X Pods target with the specified deployment target. #757
- Disable libSystem objects for ARC libs that target older platforms. This applies when the deployment target is set to < iOS 6.0 or OS X 10.8, or not specified at all. #352 #1161
- Mark header source files as ‘Project’ not ‘Public’. #747
- Add
PBXGroupas acceptablePBXFileReferencevalue. #49 - Make
xcodeproj showwithout further arguments actually work. #45
Enhancements
- Added support for pre-download over Mercurial. #750
0.16.1 (2013-01-13)
Bug fixes
- After unpacking source from a HTTP location, move the source into the parent dir if the archive contained only one child. This is done to make it consistent with how source from other types of locations are described in a podspec. NOTE This might break some podspecs that assumed the incorrect layout. #727 #728
- Remove duplicate option in
pod updatecommand. #725 - Memory fixes in Xcodeproj. #43
Xcodeproj Enhancements
- Sort contents of xcconfig files by setting name. #591
- Add helpers to get platform name, deployment target, and frameworks build phases
- Take SDKROOT into account when adding frameworks.
0.16.0 (2012-11-22)
Enhancements
- Use Rake 0.9.4 #657
0.16.0.rc5 (2012-11-14)
Deprecated
- The usage of specifications defined in a Podfile is deprecated. Use the
:podspecoption with a file path instead. Complete removal will most probably happen in 0.17.0. #549 #616 #525
Bug fixes
- Always consider inline podspecs as needing installation.
- Fix detection when the lib has already been integrated with the user’s target. #643 #614 #613
0.16.0.rc4 (2012-11-14)
Bug fixes
- Fix for Rake 0.9.3 #657
0.16.0.rc3 (2012-11-02)
Enhancements
- Added support for copying frameworks to the app bundle. #597
Bug fixes
- Ignore PBXReferenceProxy while integrating into user project. #626
- Added support for PBXAggregateTarget and PBXLegacyTarget. #615
- Added support for PBXReferenceProxy. #612
0.16.0.rc2 (2012-10-21)
Bug fixes
- Fix for uninitialized constant Xcodeproj::Constants error.
0.16.0.rc1 (2012-10-21)
Enhancements
- Xcodeproj partial rewrite.
#565
#561
- Performance improvements in the
Generating support filesphase. - Better support for editing existing projects and sorting groups.
- Performance improvements in the
0.15.2 (2012-10-19)
Enhancements
- Added support for
.hhheaders. #576
Bug fixes
- Restored support for running CocoaPods without a terminal. #575 #577
- The git cache now always uses a barebones repo preventing a number of related issues. #581 #569
- Improved fix for the issue that lead to empty directories for Pods. #572 #602
- Xcodeproj robustness against invalid values, such as malformed UTF8. #592
0.15.1 (2012-10-04)
Enhancements
- Show error if syntax error in Podfile or Podfile.lock.
Bug fixes
- Fixed an issue that lead to empty directories for Pods. #519 #568
- Fixed a crash related to the RubyGems version informative. #570
- Fixed a crash for
pod outdated. #567 - Fixed an issue that lead to excessively slow sets computation.
0.15.0 (2012-10-02)
Enhancements
- Pod
installwill update the specs repo only if needed. #533 - CocoaPods now searches for the highest version of a Pod on all the repos. #85
- Added a pre install hook to the Podfile and to root specifications. #486
- Support for
header_mappings_dirattribute in subspecs. - Added support for linting a Podspec using the files from its folder
pod spec lint --local - Refactored UI.
- Added support for Podfiles named
CocoaPods.podfilewhich allows to associate an editor application in Mac OS X. #528 - Added config option to disable the new version available message. #448
- Added support for extracting
.tar.bz2files #522 - Improved feedback for errors of repo subcommands. #505
Bug fixes
- Subspecs namespacing has been restored. #541
- Improvements to the git cache that should be more robust.
#517
- In certain conditions pod setup would execute twice.
- The git cache now is updated if a branch is not found #514
- Forcing UTF-8 encoding on licenses generation in Ruby 1.9. #530
- Added support for
.hppheaders. #244
0.14.0 (2012-09-10)
Bug fixes
- In certain conditions the spec of an external would have been overridden by the spec in the root of a Pod. #489
- CocoaPods now uses a recent version of Octokit. #490
- Fixed a bug that caused Pods with preferred dependencies to be always installed. Specs#464
- Fixed Xcode 4.4+ artwork warning. Specs#508
0.14.0.rc2 (2012-08-30)
Bug fixes
- Fix incorrect name for Pods from external sources with preferred subspecs. #485
- Prevent duplication of Pod with a local source and mutliple activated specs. #485
- Fixed the
uninitialized constant Pod::Lockfile::Digesterror. #484
0.14.0.rc1 (2012-08-28)
Enhancements
- Improve installation process by preserving the installed versions of Pods
across installations and machines. A Pod is reinstalled if:
- the version required in the Podfile changes and becomes incompatible with the installed one. #191
- the external source changes.
- the head status changes (from disabled to enabled or vice-versa).
- Introduce
pod updatecommand that installs the dependencies of the Podfile ignoring the lockfilePodfile.lock. #131 - Introduce
pod outdatedcommand that shows the pods with known updates. - Add
:localoption for dependencies which will use the source files directly from a local directory. This is usually used for libraries that are being developed in parallel to the end product (application/library). #458, #415, #156. - Folders of Pods which are no longer required are removed during installation. #298
- Add meaningful error messages
- The subversion downloader now does an export instead of a checkout, which makes it play nicer with SCMs that store metadata in each directory. #245
- Now the Podfile is added to the Pods project for convenient editing.
Bug fixes
- The git cache now fetches the tags from the remote if it can’t find the reference.
- Xcodeproj now builds on 10.6.8 and Travis CI without symlinking headers.
- Only try to install, add source files to the project, and clean a Pod once. #376
Notes
- External Pods might be reinstalled due to the migration to the new
Podfile.lock. - The SCM reference of head Pods is not preserved across machines.
- Pods whose inline specification changed are not detected as modified. As a
workaround, remove their folder stored in
Pods. - Pods whose specification changed are not detected as modified. As a
workaround, remove their folder stored in
Pods.
0.13.0 (2012-08-22)
Enhancements
- Add Podfile
podspecwhich allows to use the dependencies of a podspec file. #162 - Check if any of the build settings defined in the xcconfig files is overridden. #92
- The Linter now checks that there are no compiler flags that disable warnings.
Bug fixes
- The final project isn’t affected anymore by the
inhibit_all_warnings!option. - Support for redirects while using podspec from an url. #462
0.12.0 (2012-08-21)
Enhancements
- The documentation is generated using the public headers if they are specified.
- In case of a download failure the installation is aborted and the error message is shown.
- Git submodules are initialized only if requested.
- Don’t impose a certain structure of the user’s project by raising if no ‘Frameworks’ group exists. #431
- Support for GitHub Gists in the linter.
- Allow specifying ARC settings in subspecs.
- Add Podfile
inhibit_all_warnings!which will inhibit all warnings from the Pods library. #209 - Make the Pods Xcode project prettier by namespacing subspecs in nested groups. #466
0.11.1 (2012-08-09)
Bug fixes
- Fixed a crash related to subspecs without header files. [#449]
- Git submodules are loaded after the appropriate referenced is checked out and will be not loaded anymore in the cache. [#451]
- Fixed SVN support for the head version. [#432]
0.11.0 (2012-08-08)
Enhancements
- Added support for public headers. [#440]
- Added
pod repo lint. [#423] - Improved support for
:headoption and SVN repositories. - When integrating Pods with a project without "Frameworks" group in root of the project, raise an informative message. #431
- Dropped support for legacy
config.ios?andconfig.osx?
Bug fixes
- Version message now correctly terminates with a 0 exit status.
- Resolved an issue that lead to git error messages in the error report.
0.10.0 (2012-07-29)
Enhancements
- Added a
--local-onlyoption topod pushso that developers can push locally and test before pushing to a remote. #405 - Added line number information for errors generated in the Podfile. #408
- Pods stored in git repositories now initialize submodules. #406
Bug fixes
- Removed note about the post install hook form the linter.
- Improved xcodebuild error detection in the linter.
- Ensure the git cache exists, before updating it, when trying to install the ‘bleeding edge’ of a pod. #426
- Clean downloaded external pods after resolving and activating (sub)specs. #414
- Support
tar.gzas filename in a HTTP source. #428
0.9.2 (2012-07-16)
Bug fixes
- When generating the PodsDummy class, make that class unique to each target. #402
- Raise an informative error message when the platform in the
Podfileis omitted or incorrect. #403
0.9.1 (2012-07-14)
Bug fixes
- CocoaPods 0.9.x needs Xcodeproj 0.3.0.
0.9.0 (2012-07-14)
Enhancements
- Force downloading the ‘bleeding edge’ version of a pod with the
:headflag. #392 - Support for weak frameworks. #263
- Use double quotes when shelling out. This makes a url like
$HOME/local/libwork. #396
Bug fixes
- Relaxed linter to accepts pod that only specify paths to preserve (like TuneupJS).
- Gender neutralization of podfile documentation. #384
- Exit early when using an old RubyGems version (< 1.4.0). These versions contain subtle bugs related to prerelease version comparisons. Unfortunately, OS X >= 10.7 ships with 1.3.6. #398
0.8.0 (2012-07-09)
Breaking change
Syntax change in Podfile: dependency has been replaced by pod.
ruby platform :ios pod 'JSONKit', '~> 1.4' pod 'Reachability', '~> 2.0.4'
Bug fixes
- Properly quote all paths given to Git.
0.7.0 (2012-07-06)
Features
- Added support for branches in git repos.
- Added support for linting remote files, i.e.
pod spec lint http://raw/file.podspec. - Improved
Spec create template. - The indentation is automatically stripped for podspecs strings.
Bug fixes
- The default warnings of Xcode are not overriden anymore.
- Improvements to the detection of the license files.
- Improvements to
pod spec lint. - CocoaPods is now case insensitive.
0.6.1 (2012-07-01)
Bug fixes
- Switched to master branch for specs repo.
- Fixed a crash with
pod spec lintrelated topreserve_paths. - Fixed a bug that caused subspecs to not inherit the compiler flags of the top level specification.
- Fixed a bug that caused duplication of system framworks.
0.6.0 (2012-07-01)
A full list of all the changes since 0.5.1 can be found here.
Link with specific targets
CocoaPods can now integrate all the targets specified in your Podfile.
To specify which target, in your Xcode project, a Pods target should be linked
with, use the link_with method like so:
``ruby platform :ios
workspace 'MyWorkspace'
link_with ['MyAppTarget', 'MyOtherAppTarget'] dependency 'JSONKit'
target :test, :exclusive => true do xcodeproj 'TestProject', 'Test' => :debug link_with 'TestRunnerTarget' dependency 'Kiwi' end ``
NOTE: As you can see it can take either one target name, or an array of names.
-
If no explicit Xcode workspace is specified and only one project exists in the same directory as the Podfile, then the name of that project is used as the workspace’s name.
-
If no explicit Xcode project is specified for a target, it will use the Xcode project of the parent target. If no target specifies an expicit Xcode project and there is only one project in the same directory as the Podfile then that project will be used.
-
If no explicit target is specified, then the Pods target will be linked with the first target in your project. So if you only have one target you do not need to specify the target to link with.
See #76 for more info.
Finally, CocoaPods will add build configurations to the Pods project for all
configurations in the other projects in the workspace. By default the
configurations are based on the Release configuration, to base them on the
Debug configuration you will have to explicitely specify them as can be seen
above in the following line:
xcodeproj 'TestProject', 'Test' => :debugDocumentation
CocoaPods will now generate documentation for every library with the
appledoc tool and install it into Xcode’s documentation viewer.
You can customize the settings used like so:
s.documentation = { :appledoc => ['--product-name', 'My awesome project!'] }Alternatively, you can specify a URL where an HTML version of the documentation can be found:
s.documentation = { :html => 'http://example.com/docs/index.html' }See #149 and #151 for more info.
Licenses & Documentation
CocoaPods will now generate two 'Acknowledgements' files for each target specified in your Podfile which contain the License details for each Pod used in that target (assuming details have been specified in the Pod spec).
There is a markdown file, for general consumption, as well as a property list file that can be added to a settings bundle for an iOS application.
You don't need to do anything for this to happen, it should just work.
If you're not happy with the default boilerplate text generated for the title, header
and footnotes in the files, it's possible to customise these by overriding the methods
that generate the text in your Podfile like this:
class ::Pod::Generator::Acknowledgements
def header_text
"My custom header text"
end
endYou can even go one step further and customise the text on a per target basis by checking against the target name, like this:
class ::Pod::Generator::Acknowledgements
def header_text
if @target_definition.label.end_with?("MyTargetName")
"Custom header text for MyTargetName"
else
"Custom header text for other targets"
end
end
endFinally, here's a list of the methods that are available to override:
header_title
header_text
footnote_title
footnote_textIntroduced two new classes: LocalPod and Sandbox.
The Sandbox represents the entire contents of the POD_ROOT (normally
SOURCE_ROOT/Pods). A LocalPod represents a pod that has been installed within
the Sandbox.
These two classes can be used as better homes for various pieces of logic currently spread throughout the installation process and provide a better API for working with the contents of this directory.
Xcodeproj API
All Xcodeproj APIs are now in snake_case, instead of camelCase. If you are
manipulating the project from your Podfile's post_install hook, or from a
podspec, then update these method calls.
Enhancements
-
#188:
listcommand now displays the specifications introduced in the master repo if it is given as an option the number of days to take into account. -
#188: Transferred search layout improvements and options to
listcommand. -
#166: Added printing of homepage and source to search results.
-
#177: Added
--statoption to display watchers and forks for pods hosted on GitHub. -
#177: Introduced colors and tuned layout of search.
-
#112: Introduced
--pushoption to$ pod setup. It configures the master spec repository to use the private push URL. The change is preserved in future calls to$ pod setup. -
#153: It is no longer required to call
$ pod setup. -
#163: Print a template for a new ticket when an error occurs.
-
Added a new Github-specific downloader that can download repositories as a gzipped tarball.
-
No more global state is kept during resolving of dependencies.
-
Updated Xcodeproj to have a friendlier API.
Fixes
-
#142: Xcode 4.3.2 no longer supports passing the -fobj-arc flag to the linker and will fail to build. The addition of this flag was a workaround for a compiler bug in previous versions. This flag is no longer included by default - to keep using this flag, you need to add
set_arc_compatibility_flag!to your Podfile. -
#183: Fix for
.DS_Storefile in~/.cocoapodsprevents$ pod installfrom running. -
#134: Match
IPHONEOS_DEPLOYMENT_TARGETbuild setting withdeployment_targetoption in generated Pods project file. -
#142: Add
-fobjc-arctoOTHER_LDFLAGSif any pods require ARC. -
#148: External encoding set to UTF-8 on Ruby 1.9 to fix crash caused by non-ascii characters in pod description.
-
Ensure all header search paths are quoted in the xcconfig file.
-
Added weak quoting to
ibtoolinput paths.
0.5.0 (2011-11-22)
No longer requires MacRuby. Runs on MRI 1.8.7 (OS X system version) and 1.9.3.
A full list of all the changes since 0.3.0 can be found here.
0.4.0
Oops, accidentally skipped this version.
0.3.0 (2011-11-12)
Multiple targets
Add support for multiple static library targets in the Pods Xcode project with different sets of depedencies. This means that you can create a separate library which contains all dependencies, including extra ones that you only use in, for instance, a debug or test build. [docs]
# This Podfile will build three static libraries:
# * libPods.a
# * libPods-debug.a
# * libPods-test.a
# This dependency is included in the `default` target, which generates the
# `libPods.a` library, and all non-exclusive targets.
dependency 'SSCatalog'
target :debug do
# This dependency is only included in the `debug` target, which generates
# the `libPods-debug.a` library.
dependency 'CocoaLumberjack'
end
target :test, :exclusive => true do
# This dependency is *only* included in the `test` target, which generates
# the `libPods-test.a` library.
dependency 'Kiwi'
endInstall libraries from anywhere
A dependency can take a git url if the repo contains a podspec file in its root, or a podspec can be loaded from a file or HTTP location. If no podspec is available, a specification can be defined inline in the Podfile. [docs]
# From a spec repo.
dependency 'SSToolkit'
# Directly from the Pod’s repo (if it contains a podspec).
dependency 'SSToolkit', :git => 'https://github.com/samsoffes/sstoolkit.git'
# Directly from the Pod’s repo (if it contains a podspec) with a specific commit (or tag).
dependency 'SSToolkit', :git => 'https://github.com/samsoffes/sstoolkit.git',
:commit => '2adcd0f81740d6b0cd4589af98790eee3bd1ae7b'
# From a podspec that's outside a spec repo _and_ the library’s repo. This can be a file or http url.
dependency 'SSToolkit', :podspec => 'https://raw.github.com/gist/1353347/ef1800da9c5f5d267a642b8d3950b41174f2a6d7/SSToolkit-0.1.1.podspec'
# If no podspec is available anywhere, you can define one right in your Podfile.
dependency do |s|
s.name = 'SSToolkit'
s.version = '0.1.3'
s.platform = :ios
s.source = { :git => 'https://github.com/samsoffes/sstoolkit.git', :commit => '2adcd0f81740d6b0cd4589af98790eee3bd1ae7b' }
s.resources = 'Resources'
s.source_files = 'SSToolkit/**/*.{h,m}'
s.frameworks = 'QuartzCore', 'CoreGraphics'
def s.post_install(target)
prefix_header = config.project_pods_root + target.prefix_header_filename
prefix_header.open('a') do |file|
file.puts(%{#ifdef __OBJC__\n#import "SSToolkitDefines.h"\n#endif})
end
end
endAdd a post_install hook to the Podfile class
This allows the user to customize, for instance, the generated Xcode project before it’s written to disk. [docs]
# Enable garbage collection support for MacRuby applications.
post_install do |installer|
installer.project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['GCC_ENABLE_OBJC_GC'] = 'supported'
end
end
endManifest
Generate a Podfile.lock file next to the Podfile, which contains a manifest of your application’s dependencies and their dependencies.
PODS:
- JSONKit (1.4)
- LibComponentLogging-Core (1.1.4)
- LibComponentLogging-NSLog (1.0.2):
- LibComponentLogging-Core (>= 1.1.4)
- RestKit-JSON-JSONKit (0.9.3):
- JSONKit
- RestKit (= 0.9.3)
- RestKit-Network (0.9.3):
- LibComponentLogging-NSLog
- RestKit (= 0.9.3)
- RestKit-ObjectMapping (0.9.3):
- RestKit (= 0.9.3)
- RestKit-Network (= 0.9.3)
DOWNLOAD_ONLY:
- RestKit (0.9.3)
DEPENDENCIES:
- RestKit-JSON-JSONKit
- RestKit-ObjectMapping
Generate Xcode projects from scratch
We no longer ship template projects with the gem, but instead generate them programmatically. This code has moved out into its own Xcodeproj gem, allowing you to automate Xcode related tasks.