To install or update CocoaPods see this guide.
To install release candidates run [sudo] gem install cocoapods --pre
Integrate swift_version
DSL support into pod targets. Dimitris Koutsogiorgas #7134
Add support for editing the podspec, license, README, license, and docs of local development pods
Eric Amorde
#7093
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 Project
in Xcode header build phase
Paul Beusterien
#4496
Fix archiving apps with static frameworks
Paul Beusterien
#7158
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
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_file
with 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_IDENTITY
for 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 SYMROOT
is properly set for all user configurations
Dimitris Koutsogiorgas
#7081
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
Deduplicate test specs correctly from pod variants and targets
Dimitris Koutsogiorgas
#7036
Do not merge pod_target_xcconfig
from test specs into non test xcconfigs
Dimitris Koutsogiorgas
#7037
Wrap $PODS_CONFIGURATION_BUILD_DIR
and $PODS_BUILD_DIR
with 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
--delete
when copying resources to app target folderEnsure transitive dependencies are linked to test targets
Dimitris Koutsogiorgas
#6917
Properly install pod targets with test specs within subspecs
Dimitris Koutsogiorgas
#6915
Add --skip-tests
support push
to push command
Dimitris Koutsogiorgas
#6893
Cache result of resource and framework paths
Dimitris Koutsogiorgas
#6893
Ensure source urls are set when spec has subspecs with dependencies
Dimitris Koutsogiorgas
#6888
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
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
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
Remove 0.34 migration for a small boost in pod install
time
Dimitris Koutsogiorgas
#6783
Use a cache when figuring out if a pod target is test only
Dimitris Koutsogiorgas
#6787
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_json
converts a Podfile to JSON
Dacaiguoguo
#6779
Link swiftSwiftOnoneSupport
for 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 executing push
command 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
pod lib lint
.Fix generating LD_RUNPATH_SEARCH_PATHS
without use_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 update
and pod 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
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.md
to keep a glossary of the most common terms used in cocoapods. Rob Contreras #2379
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_LDFLAGS
for 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 UIRequiredDeviceCapabilities
for tvOS
Info.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-validation
to skip linking a pod during lint.
Samuel Giddins
Dimitris Koutsogiorgas
#5670
Updated the colored2 gem (previous version removed from rubygems.org).
Ben Asher
#6533
inherit! search_paths
.Show git progress when downloading the CocoaPods Specs repo.
Danielle Tomlinson
#5937
Move Installer target verification into the Xcode namespace Danielle Tomlinson #5607
pod repo push
now accepts the --swift-version
argument.
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
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 lint
fails.
Samuel Giddins
Remove the const_missing
hack for Pod::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
Generate PODS_TARGET_SRCROOT
build setting for each pod target.
Dimitris Koutsogiorgas
#5375
Add support for running CocoaPods on Linux.
Samuel Giddins
Use native Ruby ASCII plist parsing and serialization, removing dependencies on FFI, Xcode, and macOS.
Samuel Giddins
Run codesigning in parallel in the embed frameworks build phase when COCOAPODS_PARALLEL_CODE_SIGN
is set to true
.
Ben Asher
#6088
Add target-device tvOS in copy_resources generator.
Konrad Feiler
#6052
Read the correct SWIFT_VERSION
when generating target XCConfigs.
Ben Asher
#6067
Don't explicitly set ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
to NO.
Ben Asher
#6064
Redefine FOUNDATION_EXPORT for C-only pods in umbrella header.
Chris Ballinger
#6024
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
None.
Redefine FOUNDATION_EXPORT for C-only pods in umbrella header.
Chris Ballinger
#6024
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
Ensure messages apps have an embed frameworks build phase
Ben Asher
#5860
Fix linting of private pods when using libraries.
Stefan Pühringer
#5891
echo "3.0" >> .swift-version
.pod lib create
.Wrap generated import headers with OBJC to fix C only pods.
Dimitris Koutsogiorgas
#5291
Prevent crash when generating acknowledgements when license type is not specified.
Marcelo Fabri
#5826
Pass full path to App.xcworkspace for spec validation, and use git -C
for pod repo push
git ops.
Ben Asher
#5805
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
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
Move Pods Project generation to an Xcode
Namespace.
Daniel Tomlinson
#5480
Add the ability to inhibit swift warnings.
Peter Ryszkiewicz
#5414
Use git ls-remote
to 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 push
with 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
Fix local pod platform conflict error message.
Muhammed Yavuz Nuzumlalı
#5052
Avoid use of activesupport
version 5 to stay compatible with macOS system Ruby.
Boris Bügling
#5602
Fix installing pods with use_frameworks
when deduplication is disabled.
Samuel Giddins
#5481
Running pod setup --silent
will now properly silence git output while updating the repository.
Samuel Giddins
Fix linting pods that depend upon XCTest
.
Samuel Giddins
#5321
Use require
instead of autoload
to solve an issue with loading fourflusher
.
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.lock
script write errors to STDERR and improve POSIX shell compatibility.
Simon Warta
#5595
Symlink the header folders in the framework bundle's root directory by a new shell script build phase if header_mappings_dir
is 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 Set
is 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
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
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
The pod init
command now uses target inheritance for test targets in the generated Podfile.
Orta Therox
#4714
Support customized build directories by letting user xcconfig definitions rely on the new overridable alias build variable PODS_BUILD_DIR
.
Marius Rackwitz
#5217
Fix for pod repo push --help
throwing an error.
Boris Bügling
#5214
The warning for not having utf-8 set as the default encoding for a terminal now properly respects the --no-ansi
argument.
Joshua Kalpin
#5199
Headers from vendored frameworks no longer end up in the HEADER_SEARCH_PATH
when using frameworks. They are now assumed to be already present as modular headers in the framework itself.
Mark Spanbroek
#5146
Access to the Pod::SourcesManager
constant has been restored, though its use is considered deprecated and subject to removal at any time. Migrate to use Pod::Config.instance.sources_manager
in some manner as soon as possible.
Samuel Giddins
Running pod repo update --silent
will now properly silence git output while updating the repository.
Samuel Giddins
When an unknown build configuration is mentioned in the Podfile, CocoaPods will suggest the build configurations found in the user project.
Samuel Giddins
#5113
Improved the error message when a matching spec cannot be found, mentioning that now pod repo update
is not implicit when running pod install
.
Orta Therox
#5135
Add support for sharded specs directories.
Samuel Giddins
#5002
Pass the build setting OTHER_CODE_SIGN_FLAGS
to codesign for the generated embed frameworks build phase's script, as Xcode does when signing natively.
Václav Slavík
#5087
Sort files from Dir.glob
explicitly to produce same result on case sensitive file system as result on case insensitive file system.
Soutaro Matsumoto
Fix build path for resource bundles.
Marius Rackwitz
#5034
Rely on TARGET_BUILD_DIR
instead of CONFIGURATION_BUILD_DIR
in the generated embed resources build phase's script, so that UI test targets can be run.
seaders
#5133
Ensure that a CFBundleVersion
is set for resource bundles' Info.plist files.
Samuel Giddins
#4897
Running pod install
doesn't imply an automatic spec repo update.
The old behavior can be achieved by passing in the option --repo-update
or running pod repo update
.
Marius Rackwitz
#5004
Remove the configuration variable skip_repo_update
as the default behavior varies now between pod install
and pod (update|outdated)
.
Marius Rackwitz
#5017
The master specs repo will no longer perform ‘no-op’ git fetches. This should help to reduce the load on GitHub's servers.
Daniel Tomlinson
#5005
#4989
The specs repos will no longer support shallow clones to reduce CPU load on git servers. Pre-existing shallow clones of the master
repo will automatically be upgraded to deep clones when the repo is updated.
Samuel Giddins
#5016
The validator will check that all public_header_files
and private_header_files
are also present in source_files
.
Samuel Giddins
#4936
The master specs repository can no longer be added via pod repo add
, but instead must be done via pod setup
.
Samuel Giddins
Print a friendly error message when the platform for a target cannot be inferred.
Samuel Giddins
#4790
Rely on TARGET_BUILD_DIR
instead of CONFIGURATION_BUILD_DIR
in the generated embed frameworks build phase's script, so that UI test targets can be run.
Marius Rackwitz
#5022
Fix build paths for resources bundles.
Marius Rackwitz
#5028
Validate that a Podfile does not declare the same target twice.
Samuel Giddins
#5029
Development pods will no longer be implicitly unlocked. This makes CocoaPods respect constraints related to dependencies of development pods in the lockfile.
If you change the constraints of a dependency of your development pod and want to override the locked version, you will have to use pod update ${DEPENDENCY_NAME}
manually.
Muhammed Yavuz Nuzumlalı
#4211
#4577
#4580
Add the :package: 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
Fixes paths passed for resources bundles in the copy resources script.
Marius Rackwitz
#4954
Fix saying the master
specs repo exists when it has not been set up.
Samuel Giddins
#4955
Move ${TARGET_DEVICE_ARGS}
out of the quotations for --sdk
in the Copy Pods Resources
build phase.
seaders #4940
Handle when $PATH
isn't set.
Samuel Giddins
Module maps that are set per-platform will be installed for the correct platform.
Samuel Giddins
#4968
Allow deduplication to take effect even when the same pod is used with different sets of subspecs across different platforms. This changes the general naming scheme scoped pod targets. They are suffixed now on base of what makes them different among others for the same root spec instead of being prefixed by the dependent target.
Marius Rackwitz
#4146
Pass COCOAPODS_VERSION
as environment variable when invoking the prepare_command
.
Marius Rackwitz
#4933
Pods are built by default in another scoping level of the build products directory identified by their name to prevent name clashes among dependencies.
Marius Rackwitz
#4146
Fix mixed integrations where static libraries are used along frameworks from different target definitions in one Podfile.
Marius Rackwitz
#4146
Pass target device arguments to ibtool
in the copy resources script, fixing compilation of storyboards when targeting versions of iOS prior to iOS 8.
seaders
#4913
Fix pod repo lint
when passed a path argument.
Boris Bügling
#4883
xcodeproj
Podfile directive to project
.Don't try to embed project headers into frameworks.
Marius Rackwitz
#4819
Fix a crash in the analyzer when target deduplication is deactivated.
Marius Rackwitz
#4751
Handle CoreData mapping models with recursive resource globs.
Eric Firestone
#4809
Generate valid xcconfig when target name includes spaces.
Dimitris Koutsogiorgas
#4783
Properly add resource files to resources build phase.
Eric Firestone
#4762
Fix suggestion of sudo when it actually isn't needed.
Marcel Jackwerth
Set the TARGET_DEVICE_FAMILY
to support both iPhone and iPad for iOS resource bundle targets.
Andy Rifken
Share user schemes of Pods.xcodeproj
after generating deterministic UUIDS.
Samuel Giddins
Only attempt to import
a framework during linting if the pod has source files, and is thus being built by CocoaPods.
Samuel Giddins
#4823
Determine whether an external source needs to be fetched when updating a dependency regardless of subspec names.
Samuel Giddins
#4821
Present a friendly error suggesting running pod install
when there are missing local podspecs when running pod outdated
.
Samuel Giddins
#4716
Don't warn about setting base config when identical to current config.
Jed Lewison
#4722
Add user_targets
method to the UmbrellaTargetDescription
in the post-install hooks context.
Samuel Giddins
Always fetch a :podspec
dependency's podspec when it is missing in the Pods
directory.
Samuel Giddins
#4717
The Info.plist
file will now be generated properly for resource bundles, setting the proper CFBundlePackageType
and omitting the CFBundleExecutable
key.
Samuel Giddins
Xcodeproj#259
Fix crash when deintegrating due to major version change and there are multiple root-level Xcode projects.
Samuel Giddins
Ensure the sandbox_root
attribute is set on the pre-install hooks context.
Samuel Giddins
The link_with
Podfile DSL method has been removed in favor of target inheritance.
Samuel Giddins
The :exclusive => true
Podfile DSL target option has been removed in favor of the inherit! :search_paths
directive.
Samuel Giddins
The specification of :head
dependencies has been removed.
Samuel Giddins
#4673
The deprecated :local
dependency option has been removed in favor of the equivalent :path
option.
Samuel Giddins
The deprecated dependency
method in the Podfile DSL has been removed in favor of the equivalent pod
method.
Samuel Giddins
The deprecated preferred_dependency
method in the Specification DSL has been removed in favor of the equivalent default_subspecs
method.
Samuel Giddins
The docset_url
Specification attribute has been removed.
Samuel Giddins
Core#284
Build configuration names are no longer set as pre-processor defines, but rather POD_CONFIGURATION_$CONFIGURATION_NAME
is defined in order to lessen conflicts with pod code.
#4143
Add the ability to add a custom commit message when pushing a spec. Bart Jacobs #4583
Added support for pod env
to print the pod environment without having to crash.
Hemal Shah
#3660
Add support for specifying :source with a pod dependency.
Eric Firestone
#4486
Ask user to run pod install
when a resource not found during in copy resources script.
Muhammed Yavuz Nuzumlalı
Add support to track .def
sources.
Add support to track .def
files as headers. Dimitris Koutsogiorgas #338
Pod::Installer::PostInstallHooksContext
now offers access to the sandbox
object.
Marcelo Fabri
#4487
Improve sorting algorithm for pod search
.
Muhammed Yavuz Nuzumlalı
cocoapods-search#12
Improve pod search
performance while using --full
flag.
Muhammed Yavuz Nuzumlalı
cocoapods-search#8
Improve message when there is no spec in repos for dependency set in Podfile.
Muhammed Yavuz Nuzumlalı
#4430
Reduce the number of times the user's Xcode project is opened, speeding up installation.
Samuel Giddins
#4374
Improving the performance of Pod::Installer::Analyzer#generate_pod_targets
Daniel Ribeiro
#4399
Framework pods that have a header_mappings_dirs
set will now produce frameworks with headers that respect the nesting.
Samuel Giddins
The validator will now ensure that pods with a header_mappings_dirs
have all of their headers inside that directory.
Samuel Giddins
Pods will be validated with the -Wincomplete-umbrella
compiler flag to ensure module maps are valid.
Samuel Giddins
#3428
The validator will now attempt to build an app that imports the pod.
Samuel Giddins
#2095
#2134
The Info.plist
file's CFBundleIdentifier
is now set via the PRODUCT_BUNDLE_IDENTIFIER
build setting, consistent with Xcode 7.
Samuel Giddins
#4426
Externally-sourced pods will now have their specifications quickly linted.
Samuel Giddins
Set the deployment target on pods to be that which is defined in the podspec.
Samuel Giddins
#4354
Set a deployment target for resource bundle targets.
Samuel Giddins
#3347
Targets that are no longer integrated with CocoaPods will be properly de-integrated when installation occurs.
Samuel Giddins
Targets that are integrated will be ensured that they have all CocoaPods-related settings and phases properly installed.
Samuel Giddins
Total de-integration will happen whenever the major version of CocoaPods changes, ensuring backwards-incompatible changes are properly applied.
Samuel Giddins
The Podfile now allows specifying installation options via the install!
directive.
Samuel Giddins
Core#151
The Podfile now allows marking targets as abstract
and specifying the pod inheritance mode via the inherit!
directive.
Samuel Giddins
#1249
#1626
#4001
Fix compiling of localized resources. Eric Firestone #1653
Fix compiling of asset catalog files inside resource bundles.
Muhammed Yavuz Nuzumlalı
#4501
Prevent installer to be run from inside sandbox directory.
Muhammed Yavuz Nuzumlalı
Improve repo lint error message when no repo found with given name.
Muhammed Yavuz Nuzumlalı
#4142
Fix a crash in dependency resolution when running Ruby 2.3.
Samuel Giddins
#4345
Fix handling of localized files in Pods installed as frameworks.
Tim Bodeit
#2597
Only include native targets when generating the Podfile in pod init
.
Samuel Giddins
#2169
Ensure that generated Info.plist
files have a CFBundleShortVersionString
that is precisely three dot-separated numbers.
Samuel Giddins
#4421
Set the APPLICATION_EXTENSION_API_ONLY
build setting if integrating with a tvOS extension target, or a target that has the setting set to YES
.
Samuel Giddins
#3644
#4393
Only the root directory of externally-sourced pods will be searched for podspecs.
Samuel Giddins
#3683
Remove the library name's extension when adding it in the “linker flags” build setting to support dynamic libraries.
Andrea Cremaschi
#4468
Specifying relative subspec names to the linter is now supported.
Samuel Giddins
#1917
Headers used to build a pod will no longer be duplicated for frameworks.
Samuel Giddins
#4420
The UIRequiredDeviceCapabilities
key is now specified in the Info.plist
file for tvOS pods built as frameworks.
Samuel Giddins
#4514
Fix Swift code completion for Development Pods by using realpath
for symlinked source files.
Boris Bügling
#3777
Avoid the duplicate UUID warning when a Pod is installed for multiple platforms.
Samuel Giddins
#4521
Changing the name of a target in a Podfile will no longer cause warnings about being unable to set the base configuration XCConfig.
Samuel Giddins
Ensure that linking multiple times against the same framework does not trigger the duplicate module name check for frameworks.
Boris Bügling
Samuel Giddins
#4550
Fix lint in Xcode 7.2, it requires -destination
.
Boris Bügling
#4652
Empty podfiles / target blocks no longer break the user's Xcode project.
Samuel Giddins
#3617
The pre-processor define for DEBUG
will be set for all debug-based build configurations when building pods.
Samuel Giddins
#4148
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
3.x.y
.The EMBEDDED_CONTENT_CONTAINS_SWIFT
build 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
Give a meaningful message for the case where there is no available stable version for a pod, and there is no explicit version requirement.
Muhammed Yavuz Nuzumlalı
#4197
Use watchsimulator
when validating pods with the watchOS platform.
Thomas Kollbach
#4130
C or C++ preprocessor output files with .i
extension now have their compiler flags set correctly.
Andrea Aresu
Remove SDKROOT relative search path as it isn't needed anymore since XCTest.
Boris Bügling
#4219
Podfile generated by pod init
now specifies iOS 8.0 as the default platform and includes use_frameworks!
for Swift projects.
Jamie Evans
Support for the new tvos
platform.
Boris Bügling
#4152
Either generate just one pod target or generate it once for each target definition.
Marius Rackwitz
#4034
Stop setting DYLIB_CURRENT_VERSION
, CURRENT_PROJECT_VERSION
, and DYLIB_COMPATIBILITY_VERSION
for pods integrated as dynamic frameworks.
Samuel Giddins
#4083
The headers folders paths for static library pods will be unset, fixing validation when archives are uploaded to iTunes Connect.
Boris Bügling
Samuel Giddins
#4119
Don't require the platform
attribute for targets without any declared pods when running pod install --no-integrate
.
Sylvain Guillopé
#3151
Gracefully handle exception if creating the repos directory fails due to a system error like a permission issue.
Sylvain Guillopé
#4177
Using vendored frameworks without a Headers
directory will no longer cause a crash.
Samuel Giddins
#3967
Computing the set of transitive dependencies for a pod target, even if the target is scoped, will no longer smash the stack.
Samuel Giddins
#4092
Take into account a specification's exclude_files
when constructing resource bundles.
Samuel Giddins
#4065
Fix resolving to platform-compatible versions of transitive dependencies.
Samuel Giddins
#4084
HEADER_SEARCH_PATHS
will no longer be constructed recursively.Collapse the namespaced public and private pod xcconfig into one single xcconfig file.
Marius Rackwitz
#3916
Add --sources
option to push
command.
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_provider
hook 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 --private
option to pod spec lint
, pod lib lint
, and pod repo push
that will ignore warnings that only apply to public specifications and sources.
Samuel Giddins
Core#190
#2682
Add support for dynamic vendored_frameworks
and vendored_libraries
.
Samuel Giddins
#1993
Build settings specified in pod_target_xcconfig
of 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_INSTALL
is enabled.
Dominique d'Argent
#3971
Embed frameworks into app and watch extensions.
Boris Bügling
#4004
Fix missing $(inherited)
for generated xcconfig LIBRARY_SEARCH_PATHS
and HEADER_SEARCH_PATHS
build settings.
Tyler Fox
#3908
Fix source locking/unlocking.
Samuel Giddins
#4059
Include the -ObjC
linker flag when static vendored_frameworks
are present.
Samuel Giddins
#3870
#3992
Fix generation of xcconfig files that specify both -iquote
and -isystem
headers.
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
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
Ensure the aggregate .xcconfig
file only has the settings for the appropriate build configuration.
Samuel Giddins
#3842
Show the correct error when pod spec lint
finds multiple podspecs, and at least one of them fails linting.
Samuel Giddins
#3869
Set header search paths properly on the user target when vendored_libraries
Pods are used while integrating Pods as frameworks.
Jonathan MacMillan
#3857
Only link public headers in the sandbox for Pods that are not being built into dynamic frameworks, when integrating Pods as frameworks.
Jonathan MacMillan
#3867
Don't lock resource files, only source files.
Mason Glidden
#3557
Fix copying frameworks when integrating with today extensions.
Samuel Giddins
#3819
user_target_xcconfig
s of multiple subspecs.The resolver will now take supported platform deployment targets into account when resolving dependencies.
Samuel Giddins
#2443
Pods.xcodeproj
will now be written with deterministic UUIDs, vastly reducing project churn and merge conflicts. This behavior can be disabled via the new COCOAPODS_DISABLE_DETERMINISTIC_UUIDS
environment variable.
Samuel Giddins
cocoapods-stats
is now a default plugin.
Samuel Giddins
Ensure that the prepare_command
is run even when skipping the download cache.
Samuel Giddins
#3674
Public headers inside a directory named framework
should 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 -ObjC
linker flag if it’s unnecessary.
Samuel Giddins
#3537
Ensure that no duplicate framework or target dependencies are created.
Samuel Giddins
#3763
De-duplicate Pod Targets: CocoaPods now recognizes when a dependency is used multiple times across different user targets, but needs to be built only once. The targets in Pods.xcodeproj
need to be duplicated when one of the following applies:
You can opt-out of this behavior installation-wise, by setting the following option in your ``~/.cocoapods/config.yaml`:
deduplicate_targets: false
The CocoaPods environment header has been removed.
Samuel Giddins
#2390
The Installer
is passed directly to the pre_install
and post_install
hooks defined in the Podfile, instead of the previously used Hooks::InstallerRepresentation
.
Marius Rackwitz
#3648
Deprecate the xcconfig
attribute in the Podspec DSL, which is replaced by the new attributes pod_target_xcconfig
and user_target_xcconfig
.
Marius Rackwitz
CocoaPods#3465
The notice about a new version being available will now include our recommendation of using the latest stable version.
Hugo Tunius
#3667
New commands pod cache list
and pod cache clean
allows you to see the contents of the cache and clean it.
Olivier Halligon
#3508
The download cache will automatically be reset when changing CocoaPods versions.
Samuel Giddins
#3542
Supports running pre-install hooks in plugins. This happens before the resolver does its work, and offers easy access to the sandbox, podfile and lockfile via a PreInstallHooksContext
object. This also renames the post-install hooks from HooksContext
to PostInstallHooksContext
.
Orta Therox
#3540
Allow passing additional arguments to pod lib create
, which then get passed as-is to the configure
scripts.
Samuel Giddins
#2160
Use -analyzer-disable-all-checks
to disable static analyzer for pods with inhibit_warnings
enabled (requires Xcode >= 6.1).
Dieter Komendera
#2402
Cache globbing in PathList
to speed up pod install
.
Vincent Isambart
#3699
CocoaPods will validate your podfile and try to identify problems and conflicts in how you've specified the dependencies.
Hugo Tunius
#995
pod update
will now accept root pod names, even when only subspecs are installed.
Samuel Giddins
#3689
Support for the new watchos
platform.
Boris Bügling
#3681
Added recursive support to the public headers of vendored frameworks that are automatically linked in the sandbox. This fixes and issue for framework header directories that contain sub-directories.
Todd Casey
#3161
Public headers of vendored frameworks are now automatically linked in the sandbox. That allows transitive inclusion of headers from other pods.
Vincent Isambart
#3161
Fixes an issue that prevented static libraries from building. OTHER_LIBTOOLFLAGS
is no longer set to the value of OTHER_LDFLAGS
. If you want to create a static library that includes all dependencies for (internal/external) distribution then you should use a tool like cocoapods-packager
.
Michael Moscardini
#2747
#2704
The embed frameworks script will now properly filter out symlinks to the directories that are filtered, which fixes an issue when submitting to the Mac App Store.
Samuel Giddins
The error report template is now more robust against missing executables.
Samuel Giddins
#3719
Attempting to specify a git
source where a Podspec for the requested pod is not found will have a more helpful error message.
Samuel Giddins
pod outdated
will now accept the --no-repo-update
and --no-integrate
options.
Samuel Giddins
Fixes an issue which prevented using a custom CONFIGURATION_BUILD_DIR
when integrating CocoaPods via dynamic frameworks.
Tim Rosenblatt
#3675
Pods frameworks in codesigned Mac apps are now signed.
Nikolaj Schumacher
#3646
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 try
yields editable projects.
Samuel Giddins
cocoapods-try#31
pod repo push
will now find and push JSON podspecs.
#3494
Kyle Fuller
Flush stdin/stderr and wait a bit in executable
.
Boris Bügling
#3500
[Cache] Fixes a bug that caused that a pod, which was cached once is not updated correctly when needed e.g. for pod spec lint
.
Marius Rackwitz
#3498
Only add the “Embed Pods Frameworks” script for application and unit test targets.
Marius Rackwitz
#3440
C++ source files with .cc
, .cxx
and .c++
extensions now have their compiler flags set correctly.
Chongyu Zhu
Kyle Fuller
Handle broken symlinks when installing a Pod.
Daniel Barden
#3515
Just remove write permissions from files, so executables are unaffected.
Mason Glidden
#3501
Always copy the generated Podfile.lock
to Pods/Manifest.lock
so they are guaranteed to match, character-by-character, after installation.
Samuel Giddins
#3502
Don't generate an umbrella header when a custom module map is specified. This avoids an incomplete module map warning.
Samuel Giddins
Actually allow skipping the download cache by downloading directly to the download target when requested.
Samuel Giddins
For more details, see 📝 CocoaPods 0.37 on our blog.
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
Add environment variable COCOAPODS_SKIP_UPDATE_MESSAGE
to disable new version message.
Andrea Mazzini
#3364
Use user project's object version for pods project.
Boris Bügling
#253
Adding $(inherited)
to FRAMEWORK_SEARCH_PATHS
build setting in xcconfig for aggregate.
Tomohiro Kumagai
#3429
Don‘t crash when the downloader can’t find an appropriate podspec in a git
pod.
Samuel Giddins
#3433
Automatically lock Pod source files after installing.
Mason Glidden
#1154
Handle subprocesses leaking STDOUT/STDERR pipes by more strictly managing process lifetime and not allowing I/O to block completion of the task.
Samuel Giddins
#3101
Do not create pod target if source_files
only contains headers.
Boris Bügling
#3106
Run a pod's prepare_command
(if it has one) before it is cleaned in the download cache.
Marius Rackwitz
Samuel Giddins
#3436
Don't set the -fno-objc-arc
compiler flags for files for which the flag makes no sense.
Samuel Giddins
#2559
Also apply a pod's configuration to any resource targets defined by the pod.
Tom Adriaenssen
#3463
Allow the specification of custom module map files.
Samuel Giddins
Marius Rackwitz
#3145
Show the source URI for local Pod specification repositories in pod repo list
.
Kyle Fuller
Only show a warning when there is a minimum deployment target mismatch between target and spec, instead of throwing a hard error.
Samuel Giddins
#1241
Add download caching for pods, which speeds up pod install
and linting, potentially by several orders of magnitude.
Samuel Giddins
#2863
#3172
Add a --fail-fast
option to both pod spec lint
and pod lib lint
that causes the linter to exit as soon as a single subspec or platform fails linting.
Marius Rackwitz
Naïvely prevent base xcconfig warnings for targets that have custom config files set.
Chris Brauchli
#2633
Ensure private headers are declared as such in a framework's generated module map.
Samuel Giddins
#2974
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
pod :path
option.Unique resources passed to the script generator.
Diego Torres
#3315
#3327
Update the Manifest.lock
when migrating local podspecs to JSON. This fixes running pod install
after upgrading to 0.36
.
Samuel Giddins
#3292
#3299
Workarounds(✻) for the resource script's handling of .xcasset
files.
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 differentxcassets
for different targets will still have issues; we (@AliSoftware) are working on a deeper fix (#3263) for the next release.
For more details, see 📝 CocoaPods 0.36 on our blog.
Include Swift-specific build settings on target creation, i.e. disable optimizations for debug configuration. Marius Rackwitz #3238
Only copy explicitly specified xcasset files into the bundle of the integrated target.
Marius Rackwitz
#3219
Correctly filter Xcode warnings about the use of dynamic frameworks.
Boris Bügling
Fixes warnings, when the aggregate target doesn't contain any pod target, which is build, because PODS_FRAMEWORK_BUILD_PATH
was added to FRAMEWORK_SEARCH_PATHS
, but never created.
Marius Rackwitz
#3217
Allows the usage of :head
dependencies even when the most recent published version was a pre-release.
Samuel Giddins
#3212
Limit the check for transitive static binaries to those which are directly linked to the user target.
Boris Bügling
#3194
Lint to prevent dynamic libraries and frameworks from passing with iOS 7.
Boris Bügling
#3193
Shows an informative error message when there is no base specification found for a :head
dependency.
Samuel Giddins
#3230
Fix the OTHER_SWIFT_FLAGS
generated, so it inherits previous definitions.
Daniel Thorpe
#2983
Set the APPLICATION_EXTENSION_API_ONLY
build setting if integrating with a watch extension target.
Boris Bügling
#3153
Build for iOS simulator only during validation. This allows validation without having provisioning profiles set up.
Boris Bügling
#3083
Swift#13
Explicitly inform the user to close existing project when switching to a workspace for the first time.
Kyle Fuller
#2996
Automatically detect conflicts between framework names.
Samuel Giddins
#2943
Use the proper TMPDIR
for the CocoaPods process, instead of blindly using /tmp
.
Samuel Giddins
Let lint fail for Swift pods supporting deployment targets below iOS 8.0.
Boris Bügling
#2963
Reject installation if a static library is used as a transitive dependency while integrating Pods as frameworks.
Samuel Giddins
#2926
Do not copy Swift standard libraries multiple times.
Boris Bügling
#3131
Check for Xcode License Agreement before running commands.
Xavi Matos
#3002
pod update PODNAME
will update pods in a case-insensitive manner.
Samuel Giddins
#2992
Allow specifying repo names to pod {spec,lib} lint --sources
.
Samuel Giddins
#2685
Require explicit use of use_frameworks!
for Pods written in Swift.
Boris Bügling
#3029
Lint as framework automatically. If needed, --use-libraries
option allows linting as a static library.
Boris Bügling
#2912
Adding Xcode Legacy build location support for default Pods.xcodeproj. It defaults to ${SRCROOT}/../build
but can be changed in a post_install
hook by using the Project#symroot=
writer.
Sam Marshall
Set SKIP_INSTALL=YES
for all generated targets to avoid producing Generic Xcode Archives on Archive.
Marius Rackwitz
#3188
Added support for .tpp C++ header files in specs (previously were getting filtered out and symlinks wouldn't get created in the Pods/Headers folder.)
Honza Dvorsky
#3129
Fixed installation for app-extension targets which had no dependencies configured in the Podfile.
Boris Bügling
#3102
Correct escaping of resource bundles in ‘Copy Pods Resources’ script.
Seán Labastille
#3082
Correctly update sources when calling pod outdated
, and also respect the --[no-]repo-update
flag.
Samuel Giddins
#3137
Fix the OTHER_SWIFT_FLAGS
generated, so #if COCOAPODS
works in Swift.
Samuel Giddins
#2983
Output a properly-formed Podfile
when running pod init
with a target that contains a '
in its name.
Samuel Giddins
#3136
Remove the stored lockfile checkout source when switching to a development pod.
Samuel Giddins
#3141
Migrate local Ruby podspecs to JSON, allowing updating those pods to work.
Samuel Giddins
#3038
Removing grep color markup in the embed frameworks script.
Adriano Bonat
#3117
Fixes an issue where pod ipc list
and pod ipc podfile
was returning an error.
Kyle Fuller
#3134
Fixes an issue with spaces in the path to the user's developer tools.
Boris Bügling
#3181
Set the APPLICATION_EXTENSION_API_ONLY build setting if integrating with an app extension target.
Boris Bügling
#2980
Xcodebuild warnings will now be reported as warning
during linting instead of note
.
Hugo Tunius
Copy only the resources required for the current build configuration.
Samuel Giddins
#2391
Ensure that linting fails if xcodebuild doesn't successfully build your Pod.
Kyle Fuller
#2981
cocoapods-trunk#33
Clone the master spec repository when no spec repositories are explicitly defined in the Podfile. This fixes problems using CocoaPods for the first time without any explicit spec repositories.
Kyle Fuller
#2946
Xcodebuild warnings with the string error
in them will no longer be linted as errors if they are in fact warnings.
Hugo Tunius
#2579
Any errors which occur during fetching of external podspecs over HTTP will now be gracefully handled.
Hugo Tunius
#2823
When updating spec repositories only update the git sourced repos.
Dustin Clark
#2558
Pods referenced via the :podspec
option will have their podspecs properly parsed in the local directory if the path points to a local file.
Samuel Giddins
Fix an issue where using Swift frameworks in an Objective-C host application causes an error because the Swift frameworks we're not code signed.
Joseph Ross
#3008
CocoaPods • CocoaPods-Core • Xcodeproj • CLAide • Molinillo • cocoapods-downloader • cocoapods-try • cocoapods-trunk • cocoapods-plugins
Support Frameworks & Swift: CocoaPods now recognizes Swift source files and builds dynamic frameworks when necessary. A project can explicitly opt-in via use_frameworks!
in the Podfile, or if any dependency contains Swift code, all pods for that target will be integrated as frameworks.
As a pod author, you can change the module name of the built framework by specifying a module_name
in the podspec. The built frameworks are embedded into the host application with a new shell script build phase in the user's project allowing configuration-dependent pods.
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 plugin
directive of the Podfile
will be run. Additionally, plugins that depend on hooks will have to update to specify their ‘plugin name’ when registering the hooks in order to make it possible for those hooks to be run.
Samuel Giddins
#2640
Do not generate targets for Pods without sources.
Boris Bügling
#2918
Show the name of the source for each hook that is run in verbose mode.
Samuel Giddins
#2639
Move pods' private headers to Headers/Private
from Headers/Build
. Since some SCM ignore templates include build
by default, this makes it easier to check in the Pods/
directory.
Samuel Giddins
#2623
Validate that a specification's public_header_files
and private_header_files
file patterns only match header files. Also, validate that all file patterns, if given, match at least one file.
Samuel Giddins
#2914
Installer changed to organize a development pod's source and resource files into subgroups reflecting their organization in the filesystem.
Imre mihaly
Fix updating a pod that has subspec dependencies.
Samuel Giddins
#2879
Restore the #define
s in the environment header when the --no-integrate
installation option is used.
Samuel Giddins
#2876
Fix issues when trying to discover the xcodeproj automatically but the current path contains special characters ([
,]
,{
,}
,*
,?
).
Olivier Halligon
#2852
Fix linting subspecs that have a higher deployment target than the root spec.
Samuel Giddins
#1919
Fix the reading of podspecs that come from the :git
, :svn
, :http
, or :hg
options in your Podfile
that used context-dependent ruby code, such as reading a file to determine the specification version.
Samuel Giddins
#2875
Fix the updating of :git
, :svn
, and :hg
dependencies when updating all pods.
Samuel Giddins
#2859
Fix an issue when a user doesn't yet have any spec repositories configured.
Boris Bügling
Fix an issue updating repositories when another spec repository doesn't have a remote.
Kyle Fuller
#2965
CocoaPods • CocoaPods-Core • Xcodeproj • cocoapods-downloader
For more details, see 📝 CocoaPods 0.35 on our blog.
Allow the specification of file patterns for the Podspec's requires_arc
attribute.
Kyle Fuller
Samuel Giddins
#532
From now on, pods installed directly from their repositories will be recorded in the Podfile.lock
file and will be guaranteed to be checked-out using the same revision on subsequent installations. Examples of this are when using the :git
, :svn
, or :hg
options in your Podfile
.
Samuel Giddins
#1058
Fix an output formatting issue with various commands like pod search
and pod trunk
. Olivier Halligon #2603
Show a helpful error message if the old resolver incorrectly activated a pre-release version that now leads to a version conflict.
Samuel Giddins
Provides a user friendly message when using pod spec create
with a repository that doesn't yet have any commits.
Kyle Fuller
#2803
Fixes an issue with integrating into projects where there is a slash in the build configuration name.
Kyle Fuller
#2767
Pods will use CLANG_ENABLE_OBJC_ARC = 'YES'
instead of CLANG_ENABLE_OBJC_ARC = 'NO'
. For pods with requires_arc = false
the -fno-objc-arc
flag will be specified for the all source files.
Hugo Tunius
#2262
Fixed an issue that Core Data mapping models where not compiled when copying resources to main application bundle.
Yan Rabovik
Fix uninitialized constant Class::YAML crash in some cases. Tim Shadel
pod search
, pod spec which
, pod spec cat
and pod spec edit
now use plain text search by default instead of a regex. Especially pod search UIView+UI
now searches for pods containing exactly UIView+UI
in their name, not trying to interpret the +
as a regular expression. Note: You can still use a regular expression with the new --regex
flag that has been added to these commands, e.g. pod search --regex "(NS|UI)Color"
. Olivier Halligon Core#188
Use --allow-warnings
rather than --error-only
for pod spec validation Daniel Tomlinson #2820
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 :head
pods.
Samuel Giddins
#2789
Show a more informative message when attempting to lint a spec whose source could not be downloaded.
Samuel Giddins
#2667
#2759
The Resolver
has been completely rewritten to use Molinillo, an iterative dependency resolution algorithm that automatically resolves version conflicts. The order in which dependencies are declared in the Podfile
no longer has any effect on the resolution process.
You should ensure that pod install
, pod update
and pod update [NAME]
work as expected and install the correct versions of your pods during this RC1 release. Samuel Giddins #978 #2002
Support for older versions of Ruby has been dropped and CocoaPods now depends on Ruby 2.0.0 or greater. This is due to the release of Xcode 6.0 which has dropped support for OS X 10.8, which results in the minimum version of Ruby pre-installed on OS X now being 2.0.0.
If you are using a custom installation of Ruby older than 2.0.0, you will need to update. Or even better, migrate to system Ruby.
Kyle Fuller
Attempts to resolve circular dependencies will now raise an exception.
Samuel Giddins
Molinillo#6
The use of implicit sources has been un-deprecated. By default, all available spec-repos will be used. There should only be a need to specify explicit sources if you want to specifically exclude certain spec-repos, such as the master
spec-repo, if you want to declare the order of spec look-up precedence, or if you want other users of a Podfile to automatically have a spec-repo cloned on pod install
.
Eloy Durán
The pod push
command has been removed as it has been deprecated in favour of pod repo push
in CocoaPods 0.33.
Fabio Pelosin
Refactorings in preparation to framework support, which could break usage of the Hooks API.
Marius Rackwitz
#2461
Implicit dependencies are now locked, so simply running pod install
will not cause them to be updated when they shouldn't be.
Samuel Giddins
#2318
#2506
Pre-release versions are only considered in the resolution process when there are dependencies that explicitly reference pre-release requirements.
Samuel Giddins
#1489
Only setup the master specs repo if required.
Daniel Tomlinson
#2562
Sandbox::FileAccessor
now optionally includes expanded paths of headers of vendored frameworks in public_headers
.
Eloy Durán
#2722
Analysis is now halted and the user informed when there are multiple different external sources for dependencies with the same root name. The user is also now warned when there are duplicate dependencies in the Podfile.
Samuel Giddins
#2738
Multiple subspecs that point to the same external dependency will now only cause that external source to be fetched once.
Samuel Giddins
#2743
Fixes an issue in the XCConfigIntegrator
where not all targets that need integration were being integrated, but were getting incorrect warnings about the user having specified a custom base configuration.
Eloy Durán
2752
Do not try to clone spec-repos in /
.
Eloy Durán
#2723
Improved sanitizing of configuration names which have a numeric prefix.
Steffen Matthischke
#2700
Fixes an issues where headers from a podspec with one platform are exposed to targets with a different platform. The headers are now only exposed to the targets with the same platform.
Michael Melanson
Kyle Fuller
#1249
Fixes a crash when running pod outdated
.
Samuel Giddins
#2624
Ensure that external sources (as specified in the Podfile
) are downloaded when their source is missing, even if their specification is present.
Samuel Giddins
#2494
Fixes an issue where running pod install/update
while the Xcode project is open can cause the open project to have build failures until Xcode is restarted.
Kyle Fuller
#2627
#2665
Fixes a crash when using file URLs as a source.
Kurry Tran
#2683
Fixes an issue when using pods in static library targets and building with Xcode 6 which requires OTHER_LIBTOOLFLAGS
instead of OTHER_LDFLAGS
, thus basically reverting to the previous Xcode behaviour, for now at least.
Kyle Fuller
Eloy Durán
#2666
Fixes an issue running the resources script when Xcode is installed to a directory with a space when compiling xcassets.
Kyle Fuller
#2684
Fixes an issue when installing Pods with resources to a target which doesn't have any resources.
Kyle Fuller
#2083
Ensure that git 1.7.5 or newer is installed when running pod.
Kyle Fuller
#2651
Make the output of pod outdated
show what running pod update
will do. Takes into account the sources specified in the Podfile
.
Samuel Giddins
#2470
Allows the use of the GCC_PREPROCESSOR_DEFINITION
flag ${inherited}
without emitting a warning.
Samuel Giddins
#2577
Integration with user project will no longer replace an existing base build configuration.
Robert Jones
#1736
Improved sanitizing of configuration names to avoid generating invalid preprocessor definitions.
Boris Bügling
#2542
More robust generation of source names from URLs.
Samuel Giddins
#2534
Allow the Validator
to only use specific sources. Allows customizable source for pod spec lint
and pod lib lint
, with both defaulting to master
. Samuel Giddins #2543 cocoapods-trunk#28
Takes into account the sources specified in Podfile
running pod outdated
.
Samuel Giddins
#2553
Ensures that the master repo is shallow cloned when added via a Podfile source
directive.
Samuel Giddins
#3586
Ensures that the user project is not saved when there are no user targets integrated.
Samuel Giddins
#2561
#2593
Fix a crash when running pod install
with an empty target that inherits a pod from a parent target.
Kyle Fuller
#2591
Take into account versions of a Pod from all specified sources when resolving dependencies.
Thomas Visser
#2556
Sanitize build configuration names in target environment header macros.
Kra Larivain
#2532
.git
in repository URLs when trying to find a matching specs repo.For more details, see 📝 CocoaPods 0.34 on our blog.
Add support for loading podspecs from only specific spec-repos via sources
. By default, when there are no sources specified in a Podfile all source repos will be used. This has always been the case. However, this implicit use of sources is now deprecated. Once you specify specific sources, no repos will be included by default. For example:
source '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
pod repo list
command which lists all the repositories.Works around an Xcode issue where linting would fail even though xcodebuild
actually succeeds. Xcode.app also doesn‘t fail when this issue occurs, so it’s safe for us to do the same.
Kra Larivain
Boris Bügling
Eloy Durán
Samuel E. Giddins
#2394
#2395
Fixes the detection of JSON podspecs included via :path
.
laiso
#2489
Fixes an issue where pod install
would crash during Plist building if any pod has invalid UTF-8 characters in their title or description.
Ladislav Martincik
#2482
Fix crash when the URL of a private GitHub repo is passed to pod spec create
as an argument.
Fabio Pelosin
#1543
Fixes an issue where pod lib lint
would crash if a podspec couldn't be loaded.
Kyle Fuller
#2147
Fixes an issue where pod init
would not add source 'master'
to newly created Podfiles.
Ash Furrow
#2473
The use of the $PODS_ROOT
environment variable has been deprecated and should not be used. It will be removed in future versions of CocoaPods.
#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 Pods
directory has been reorganized. This might require manual intervention in projects where files generated by CocoaPods have manually been imported into the user's project (common with the acknowledgements files).
#1055
Fabio Pelosin
Michele Titolo
Plugins are now expected to include the cocoapods-plugin.rb
file in ./lib
.
Fabio Pelosin
CLAide#28
The specification requires_arc
attribute now defaults to true.
Fabio Pelosin
CocoaPods#267
Add support to specify dependencies per build configuration:
pod 'Lookback', :configurations => ['Debug']
Currently configurations can only be specified per single Pod.
Joachim Bengtsson
Eloy Durán
Fabio Pelosin
#1791
#1668
#731
Improved performance of git downloads using shallow clone.
Marin Usalj
Fabio Pelosin
cocoapods-downloader#29
Simplify installation: CocoaPods no longer requires the compilation of the troublesome native extensions.
Fabio Pelosin
Xcodeproj#168
Xcodeproj#167
Add hooks for plugins. Currently only the installer hook is supported. A plugin can register itself to be activated after the installation with the following syntax:
Pod::HooksManager.register(:post_install) do |installer_context| # implementation end
The installer_context
is an instance of the Pod::Installer:HooksContext
class which provides the information about the installation.
Fabio Pelosin
Core#132
Add a support for migrating the sandbox to new versions of CocoaPods.
Fabio Pelosin
Display an indication for deprecated Pods in the command line search.
Hugo Tunius
#2180
Use the CLIntegracon gem for the integration tests.
Marius Rackwitz
#2371
Include configurations that a user explicitly specifies, in their Podfile, when the --no-integrate
option is specified.
Eloy Durán
Properly quote the -isystem
values in the xcconfig files.
Eloy Durán
Remove the installation post install message which presents the CHANGELOG.
Fabio Pelosin
Eloy Durán
Add support for user-specified project directories with the --project-directory
option.
Samuel E. Giddins
#2183
Now the plutil
tool is used when available to produce output consistent with Xcode.
Fabio Pelosin
Indicate the name of the pod whose requirements cannot be satisfied.
Seivan Heidari
Fabio Pelosin
#1938
Add support for JSON specs to external sources (:path
, :git
, etc) options.
Kyle Fuller
#2320
Generate the workspaces using the same output of Xcode.
Fabio Pelosin
Fix pod repo push
to first check if a Specs directory exists and if so push there.
Edward Valentini
#2060
Fix pod outdated
to not include subspecs.
Ash Furrow
#2136
Always evaluate podspecs from the original podspec directory. This fixes an issue when depending on a pod via :path
and 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 init
so 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_LDFLAGS
of xcconfigs to avoid issues with targets containing a space character in their name.
Fabio Pelosin
Fix pod spec lint
for json
podspecs.
Fabio Pelosin
#2157
Fixed downloader issues related to json
podspecs.
Fabio Pelosin
#2158
Fixed --no-ansi
flag in help banners.
Fabio Pelosin
#34
For more details, see 📝 CocoaPods 0.33 on our blog.
pre_install
and the pod_install
hooks of the specification class have been removed.Added the cocoapods-trunk
plugin which introduces the trunk
subcommand.
Fabio Pelosin
#2151
#2153
The pod push
sub-command has been moved to the pod repo push
sub-command. Moreover pushing to the master repo from it has been disabled.
Fabio Pelosin
#2151
#2153
Overhauled command line interface. Add support for auto-completion script (d). If auto-completion is enabled for your shell you can configure it for CocoaPods with the following command:
rm -f /usr/local/share/zsh/site-functions/_pod dpod --completion-script > /usr/local/share/zsh/site-functions/_pod exec zsh
Currently only the Z shell is supported.
Fabio Pelosin
CLAide#25
CLAide#20
CLAide#19
CLAide#17
CLAide#12
The --version
flag is now only supported for the root pod
command. If used in conjunction with the --verbose
flag the version of the detected plugins will be printed as well.
Fabio Pelosin
CLAide#13
CLAide#14
The extremely meta cocoaPods-plugins
is now installed by default providing information about the available and the installed plug-ins.
David Grandinetti
Olivier Halligon
Fabio Pelosin
#2092
Validate the reachability of social_media_url
, documentation_url
and docset_url
in podspecs we while linting a specification.
Kyle Fuller
#2025
Print the current version when the repo/lockfile requires a higher version.
Samuel E. Giddins
#2049
Show help
when running the pod
command instead of defaulting to pod install
.
Kyle Fuller
#1771
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 update
may start an un-committed merge.
Kyle Fuller
#2024
default_subspec
attribute in nested subspecs.For more details, see 📝 CocoaPods 0.32 on our blog.
Allow to update only a list of given pods with pod update [POD_NAMES...]
.
Marius Rackwitz
CocoaPods#760
pod update
prints the previous version of the updated pods.
Andrea Mazzini
#2008
pod update
falls back to pod install
if 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 deprecated
and deprecated_in_favor_of
attributes to Specification DSL.
Paul Young
Core#87
Numerous improvements to the validator and to the linter.
framework
and library
attributes for invalid strings.requries_arc
attribute.resource_bundle
attribute.pod lib create
is now using the configure
file instead of the _CONFIGURE.rb
file.
Piet Brauer
Orta Therox
pod lib create
now disallows any pod name that begins with a .
Dustin Clark
#2026
Core#97
Core#98
Prevent the user from using pod
commands 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
Fixed the Podfile default_subspec
attribute in nested subspecs.
Fabio Pelosin
#1021
Warn when including deprecated pods Samuel E. Giddins #2003
prefix_header
and prepare_command
to aide their declaration as a here document (similarly to what it already does with the description).For more details, see 📝 CocoaPods 0.31 on our blog.
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 spec
subcommands.
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 CDPATH
env variable before shelling-out to prepare_command
.
Marc Boquet
#1943
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 repo
subcommands.
Boris Bügling
#1949
#1978
Gracefully inform the user if the :head
option 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.version
as the :tag
for 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_arc
attribute no longer passes the lint.
Richard Lee
#1840
Core#71
Properly quote headers in the -isystem
compiler flag of the aggregate targets.
Eloy Durán
#1862
#1894
For more details, see 📝 CocoaPods 0.30 on our blog.
Radically reduce first run pod setup bandwidth by creating a shallow clone of the ‘master’ repo by default. Use the --no-shallow
option to perform a full clone instead.
Jeff Verkoeyen
#1803
Improves the error message when searching with an invalid regular expression.
Kyle Fuller
Improves pod init
to save Xcode project file in Podfile when one was supplied.
Kyle Fuller
Adds functionality to specify a template URL for the pod lib create
command.
Piet Brauer
Fixes a bug with pod repo remove
silently handling permission errors.
Kyle Fuller
#1778
pod push
now properly checks that the repo has changed before attempting to commit. This only affected pods with special characters (such as +
) in their names.
Gordon Fontenot
#1739
CocoaPods • CocoaPods-core • cocoapods-downloader
For more details, see 📝 CocoaPods 0.29 on our blog.
The command podfile_info
is now a plugin offered by CocoaPods. As a result, the command has been removed from CocoaPods.
Joshua Kalpin
#1589
JSON has been adopted as the format to store specifications. As a result the pod ipc spec
command returns a JSON representation and the YAML specifications are not supported anymore. JSON specifications adopt the .podspec.json
extension. Fabio Pelosin #1568
Introduced pod try
the easiest way to test the example project of a pod.
Fabio Pelosin
#1568
Pod headers are now provided to the user target as a system header. This means that any warnings in a Pod‘s code will show under its target in Xcode’s build navigator, and never under the user target.
Swizzlr
#1596
Support LZMA2 compressed tarballs in the downloader.
Kyle Fuller
cocoapods-downloader#5
Add Bazaar support for installing directly from a repo.
Fred McCann
#1632
The pod search <query>
command now supports regular expressions for the query parameter when searching using the option --full
.
Florian Hanke
#1643
Pod lib lint now accepts multiple podspecs in the same folder.
kra Larivain/OpenTable
#1635
The pod push
command will now silently test the upcoming CocoaPods trunk service. The service is only tested when pushing to the master repo and the test doesn't affect the normal workflow.
Fabio Pelosin
The pod search <query>
command now supports searching on cocoapods.org when searching using the option --web
. Options --ios
and --osx
are fully supported. Florian Hanke #1643
The pod search <query>
command now supports multiword queries when using the --web
option. Florian Hanke #1643
Fixed a bug which resulted in pod lib lint
not being able to find the headers.
Fabio Pelosin
#1566
Fixed the developer frameworks search paths so that $(SDKROOT)/Developer/Library/Frameworks
is used for iOS and $(DEVELOPER_LIBRARY_DIR)/Frameworks
is used for OS X.
Kevin Wales
#1562
When updating the pod repos, repositories with unreachable remotes are now ignored. This fixes an issue with certain private repositories.
Joshua Kalpin
#1595
#1571
The linter will now display an error if a Pod's name contains whitespace.
Joshua Kalpin
Core#39
#1610
Having the silent flag enabled in the config will no longer cause issues with pod search
. In addition, the flag --silent
is no longer supported for the command.
Joshua Kalpin
#1627
The linter will now display an error if a framework ends with .framework
(i.e. QuartzCore.framework
).
Joshua Kalpin
#1331
Core#45
The linter will now display an error if a library ends with .a
or .dylib
(i.e. z.dylib
). It will also display an error if it begins with lib
(i.e. libxml
).
Joshua Kalpin
Core#44
The ARCHS build setting can come back as an array when more than one architecture is specified.
Carson McDonald
#1628
Fixed all issues caused by /tmp
being a symlink to /private/tmp
. This affected mostly pod lib lint
, causing it to fail when the Pod used prefix_header_*
or when the pod headers imported headers using the namespaced syntax (e.g. #import <MyPod/Header.h>
).
kra Larivain/OpenTable
#1514
Fixed an incorrect path being used in the example app Podfile generated by pod lib create
. Eloy Durán cocoapods-try#5
CocoaPods • CocoaPods-core • CLAide
For more details, see 📝 CocoaPods 0.28 on our blog.
CLAide now supports gem plugins. An example CocoaPods plugin can be found at open_pod_bay.
As of yet there are no promises made yet on the APIs, so try to fail as gracefully as possible in case a CocoaPods update breaks your usage. In these cases, also please let us know what you would need, so we can take this into account when we do finalize APIs.
Compiling xcassets
with actool
now uses UNLOCALIZED_RESOURCES_FOLDER_PATH
instead of PRODUCT_NAME.WRAPPER_EXTENSION
as output directory as it is more accurate and allows the project to overwrite WRAPPER_NAME
.
Marc Knaup
#1556
Added a condition to avoid compiling xcassets when WRAPPER_EXTENSION
is undefined, as it would be in the case of static libraries. This prevents trying to copy the compiled files to a directory that does not exist.
Noah McCann
#1521
Added additional condition to check if actool
is available when compiling xcassets
. This prevents build failures of Xcode 5 projects on Travis CI (or lower Xcode versions).
Michal Konturek
#1511
Added a condition to properly handle universal or mac apps when compiling xcassets. This prevents build errors in the xcassets compilation stage particularly when using xctool to build.
Ryan Marsh
#1594
Vendored Libraries now correctly affect whether a podspec is considered empty.
Joshua Kalpin
Core#38
Vendored Libraries and Vendored Frameworks now have their paths validated correctly.
Joshua Kalpin
#1567
Gists are now correctly accepted with https.
Joshua Kalpin
Core#38
The pod push
command is now more specific about the branch it pushes to.
orta
#1561
Dtrace files are now properly left unflagged when installing, regardless of configuration.
Swizzlr
#1560
Users are now warned if their terminal encoding is not UTF-8. This fixes an issue with a small percentage of pod names that are incompatible with ASCII.
Joshua Kalpin
#1570
CocoaPods • cocoapods-core • Xcodeproj
For more details, see 📝 CocoaPods 0.27 and improved installation UX on our blog.
The xcodeproj gem now comes bundled with prebuilt binaries for the Ruby versions that come with OS X 10.8 and 10.9. Users now no longer need to install the Xcode Command Line Tools or deal with the Ruby C header location.
Eloy Durán
Xcodeproj#88
Targets passed to the link_with
method of the Podfile DSL no longer need to be explicitly passed as an array. link_with ['target1', 'target2']
can now be written as link_with 'target1', 'target2'
.
Adam Sharp
Core#30
The copy resources script now compiles xcassets resources.
Ulrik Damm
#1427
pod repo
now support a remove ['repo_name']
command.
Joshua Kalpin
#1493
#1484
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
CocoaPods • cocoapods-core • Xcodeproj
Fixed a crash which was causing a failure in pod lib create
if the name of the Pod included spaces. As spaces are not supported now this is gracefully handled with an informative message.
Kyle Fuller
#1456
If an user target doesn't specify an architecture the value specified for the project is used in CocoaPods targets.
Fabio Pelosin
#1450
The Pods project now properly configures ARC on all build configurations.
Fabio Pelosin
#1454
CocoaPods • cocoapods-core • Xcodeproj
For more details, see 📝 CocoaPods 0.26 on our blog.
CocoaPods now creates and hides the schemes of its targets after every installation. The schemes are not shared because the flag which keeps track whether they should be visible is a user only flag. The schemes are still present and to debug a single Pod it is possible to make its scheme visible in the Schemes manager of Xcode. This is rarely needed though because the user targets trigger the compilation of the Pod targets.
Fabio Pelosin
#1185
Installations which don't integrate a user target (lint subcommands and --no-integrate
option) now set the architecture of OS X Pod targets to $(ARCHS_STANDARD_64_BIT)
(Xcode 4 default value for new targets). This fixes lint issues with Xcode 4.
Fabio Pelosin
#1185
Further improvements to the organization of the Pods project
Subspec
group anymore and the products of the Pods all are stored in the products group of the project.Added the documentation_url
DSL attribute to the specifications.
Fabio Pelosin
#1273
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
CocoaPods • cocoapods-core • Xcodeproj
Added support for Xcode 5.
The generated Pods Xcode project is now compatible with arm64
projects and is updated to use Xcode 5’s default settings removing all warnings.
NOTE to users migrating projects from Xcode 4, or are still using Xcode 4:
ONLY_ACTIVE_ARCH
build setting to YES
in the Debug
configuration. You will have to set the same on your project/target, otherwise the build will fail.ARCHS
value set, otherwise the build will fail.xcodebuild
tool that comes with Xcode 4, you’ll need to completely disable this setting by appending to your build command: ONLY_ACTIVE_ARCH=NO
.Speed up project generation in pod install
and pod update
.
The pre and post install hooks that have been deprecated now include the name and version of the spec that’s using them.
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:
--copy-links
to the rsync invocation to ensure the target files are copied rather than the symlink.TARGET_BUILD_DIR
which points to the App Archiving folder during an Archive action. Switching to BUILT_PRODUCTS_DIR
instead ensures that the path is correct for all actions and configurations.Ensure resource bundles are copied to installation location on install actions Chris Gummer #1364
Various bugfixes in Xcodeproj, refer to its CHANGELOG for details.
CocoaPods • cocoapods-core • Xcodeproj • cocoapods-downloader
Added pod init
command which generates a Podfile according to the targets of the project stored in the working directory and to the templates stored in the ~/.cocoapods/templates
folder. Two templates are supported:
Podfile.default
template for regular targets.Podfile.test
template for test targets. Ian Ynda-Hummel #1106 #1045CocoaPods will now leverage the xcproj command line tool if available in the path of the user to touch saved projects. This will result in projects being serialized in the exact format used by Xcode eliminating merge conflicts and other related issues. To learn more about how to install xcproj see its readme. Cédric Luthi #1275
Rationalized and cleaned up Pods project group structure and path specification.
Create all necessary build configurations for Pods.xcodeproj at the project level. If the user’s project has more than just Debug and Release build configurations, they may be explicitly specified in the Podfile:xcodeproj 'MyApp', 'App Store' => :release, 'Debug' => :debug, 'Release' => :release
If build configurations aren’t specified in the Podfile then they will be automatically picked from the user’s project in Release mode.
These changes will ensure that the libPods.a
static library is not stripped for all configurations, as explained in #1217.
Cédric Luthi
#1294
Added basic support for Bazaar repositories.
Fred McCann
cocoapods-downloader#4
Fixed crash in pod spec cat
.
Use the TARGET_BUILD_DIR
environment variable for installing resource bundles.
Cédric Luthi
#1268
CoreData versioned models are now properly handled respecting the contents of the .xccurrentversion
file.
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
CocoaPods • cocoapods-core • Xcodeproj • cocoapods-downloader
Added prepare_command
attribute to Specification DSL. The prepare command will replace the pre_install
hook. The post_install
hook has also been deprecated. #1247
The reason we provided Ruby hooks at first, was because we wanted to offer the option to make any required configuration possible. By now, however, we have a pretty good idea of the use-cases and are therefore locking down the freedom that was once available. In turn, we’re adding attributes that can replace the most common use-cases. (See the enhancements directly following this entry for more info).
The second reason we need to lock this down is because this is the last remaining obstacle to fully serialize specifications, which we need in order to move to a ‘spec push’ web-service in the future.
Added resource_bundles
attribute to the Specification DSL.
#743
#1186
Added vendored_frameworks
attribute to the Specification DSL.
#809
#1075
Added vendored_libraries
attribute to the Specification DSL.
#809
#1075
Restructured .cocoapods
folder to contain repos in a subdirectory.
Ian Ynda-Hummel
#1150
Improved pod spec create
template.
#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 xcdatamodeld
files are now properly referenced from the Pods project.
#1155
Removed punctuation check from the specification validations.
#1242
Deprecated the documentation
attribute of the Specification DSL.
Core#20
Always exlude USE_HEADERMAP
from the user’s project. #1216
Use correct template repo when using the pod lib create
command. #1214
Fixed issue with pod push
failing when the podspec is unchanged. It will now report [No change] ExamplePod (0.1.0)
and continue to push other podspecs if they exist. #1199
Set STRIP_INSTALLED_PRODUCT = NO in the generated Pods project. This allows Xcode to include symbols from CocoaPods in dSYMs during Archive builds. #1217
Ensure the resource script doesn’t fail due to the resources list file not existing when trying to delete it. #1198
Fix handling of spaces in paths when compiling xcdatamodel(d) files. #1201
CocoaPods • cocoapods-core • Xcodeproj
Specifications defining build setting with the [*]
syntax are now properly handled. #1171
The name of the files references are now properly set fixing a minor regression introduced by CocoaPods 0.22.1 and matching more closely Xcode behaviour.
The validator now builds the Pods target instead of the first target actually performing the validation.
Build settings defined through the xcconfig
attribute of a podspec
are now stripped of duplicate values when merged in an aggregate target. #1189
CocoaPods • cocoapods-core • Xcodeproj
Added the pod lib create
subcommand which allows to create a new Pod adhering to the best practices. The template is still a bit primitive and we encourage users to provide feedback by submitting patches and issues to https://github.com/CocoaPods/CocoaPods. #850
Added the pod lib lint
subcommand which allows to lint the Pod stored in the working directory (a pod spec in the root is needed). This subcommand is equivalent to the deprecated pod spec lint --local
. #850
The dependencies of the targets of the Pods project are now made explicit. #1165
The size of the cache used for the git repos is now configurable. For more details see 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_PATHS
build setting.
Pods whose head state changes now are correctly detected and reinstalled. #1160
Fixed the library reppresentation of the hooks which caused issues with the #copy_resources_script_path
method. #1157
Frameworks symlinks are not properly preserved by the copy resources script. Thanks to Thomas Dohmke (ashtom) for the fix. #1063
CocoaPods • cocoapods-core • Xcodeproj
Fixed a linter issue related to the dedicated targets change. #1130
Fixed xcconfig issues related to Pods including a dot in the name. #1152
CocoaPods • cocoapods-core • Xcodeproj
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
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
CocoaPods • cocoapods-core • cocoapods-downloader • Xcodeproj • CLAide
Introduces an experimental sandbox feature. #939
Let’s face it, even though we have a great community that spends an amazing amount of time on curating the specifications, the internet can be a hostile place and the community is growing too large to take a naive approach any longer.
As such, we have started leveraging OS X’s sandbox facilities to disallow unsanctioned operations. This is still very experimental and therefore has to be used explicitely, for now, but that does not mean we don’t want you to start using it and report issues.
To use the sandbox, simply use the sandbox-pod
command instead. E.g.:
$ sandbox-pod install
In case of issues, be sure to check /var/log/system.log
for ‘deny’ messages. For instance, here’s an example where the sandbox denies read access to /
:
May 16 00:23:35 Khaos kernel[0]: Sandbox: ruby(98430) deny file-read-data /
NOTE: The above example is actually one that we know of. We’re not sure yet which process causes this, but there shouldn’t be a need for any process to read data from the root path anyways.
NOTE 2: At the moment the sandbox is not compatible with the :path
option when referencing Pods that are not stored within the directory of the Podfile.
The naked pod
command now defaults to pod install
. #958
CocoaPods will look for the Podfile in the ancestors paths if one is not available in the working directory. #940
Documentation generation has been removed from CocoaPods as it graduated to CocoaDocs. This decision was taken because CocoaDocs is a much better solution which doesn‘t clutter Xcode’s docsets while still allowing access to the docsets with Xcode and with Dash. Removing this feature keeps the installer leaner and easier to develop and paves the way for the upcoming sandbox. Private pods can use pre install hook to generate the documentation. If there will be enough demand this feature might be reintegrated as plugin (see #1037).
Improved performance of the copy resources script and thus build time of the integrated targets. Contribution by @onato #1050.
The changelog for the current version is printed after CocoaPods is installed/updated. #853.
inhibit_warnings
per pod is now working #1032--reference-external-strings-file
flag. #1030:head
option of the Podfile. #1046 #1039COCOAPODS=1
macro in the Pod and the Client targets. This is useful for libraries which conditionally expose interfaces. #903private_header_files
attribute of the Specification DSL. #998pod podfile-info
command. Shows list of used Pods and their info in a project or supplied Podfile. Options: --all
- with dependencies. --md
- in Markdown. #855pod help
command. You can still use the old format with --help flag. #957CocoaPods.podfile
. Moreover, the experimental YAML format of the Podfile now is associated with files named CocoaPods.podfile.yaml
. #1004:local
flag in Podfile has been renamed to :path
and the old syntax has been deprecated. #971pod outdated
and external sources. #954CocoaPods • cocoapods-core • Xcodeproj
:inhibit_warnings => true
inline. This feature has been implemented by Marin Usalj (@mneorr). #10 #934Podfile.lock
and 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). #946pod search
commands now accepts the --ios
and the --osx
arguments to filter the results by platform. #625SenTestingKit
is detected. There is no need to specify them in specifications anymore. #771--no-update
argument of the install
, update
, outdated
subcommands has been renamed to --no-repo-update
. #913podspec
dsl directive of the Podfile for specifications with internal dependencies. #928Pod::FileList
to CocoaPods-core.pod ipc update-search-index
command.pod repo lint
command.~/.cocoapods/master/.git/hooks/pre-commit
path.--no-clean
argument is not ignored anymore by the installer.Podfile::TargetDefinition#copy_resources_script_name
in the Podfile hooks.pod push
#848PBXVariantGroup
present in the frameworks build phase of client targets. #859podspec
option of the pod
directive of the Podfile DSL now accepts folders.[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.17.0.rc2...0.17.0.rc3 • Xcodeproj)
pod lint --local
--allow-warnings
of pod push
#835copy_resources_script_name
to the library representation used in the hooks. #837pod ipc
.pod ipc repl
subcommand.CocoaPods • Xcodeproj • cocoapods-core • cocoapods-downloader
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:
Other specifications, might present compatibility issues for the reasons presented below.
requires_arc
attribute default value is transitioning from false
to true
. In the meanwhile a value is needed to pass the lint.copy_header_mapping
hook.exclude_header_search_paths
attribute.preferred_dependency
has been renamed to default_subspec
.exclude_files
attribute.screenshots
attribute.source_files
.pod spec cat NAME
to print a spec file to standard output.--no-clean
option of the pod spec lint
command now displays the Pods project for inspection.~/.cocoapods/config.yaml
(default values).pod ipc
to provide support for inter process communication through YAML formats.prefix_header_contents
attribute are supported in subspecs. #617date
in the gemspec for Ruby 2.0.0. 34da3f7Xcodeproj::Differ
, which shows differences between Xcode projects. 308941epodspec
directive in Podfile with no options specified. #768PBXGroup
as acceptable PBXFileReference
value. #49xcodeproj show
without further arguments actually work. #45pod update
command. #725:podspec
option with a file path instead. Complete removal will most probably happen in 0.17.0. #549 #616 #525Generating support files
phase..hh
headers. #576pod outdated
. #567install
will update the specs repo only if needed. #533header_mappings_dir
attribute in subspecs.pod spec lint --local
CocoaPods.podfile
which allows to associate an editor application in Mac OS X. #528.tar.bz2
files #522.hpp
headers. #244uninitialized constant Pod::Lockfile::Digest
error. #484pod update
command that installs the dependencies of the Podfile ignoring the lockfile Podfile.lock
. #131pod outdated
command that shows the pods with known updates.:local
option 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.Podfile.lock
.Pods
.Pods
.podspec
which allows to use the dependencies of a podspec file. #162inhibit_all_warnings!
option.inhibit_all_warnings!
which will inhibit all warnings from the Pods library. #209pod repo lint
. [#423]:head
option and SVN repositories.config.ios?
and config.osx?
--local-only
option to pod push
so that developers can push locally and test before pushing to a remote. #405tar.gz
as filename in a HTTP source. #428Podfile
is omitted or incorrect. #403:head
flag. #392$HOME/local/lib
work. #396Syntax change in Podfile: dependency
has been replaced by pod
.
ruby platform :ios pod 'JSONKit', '~> 1.4' pod 'Reachability', '~> 2.0.4'
pod spec lint http://raw/file.podspec
.Spec create template
.pod spec lint
.pod spec lint
related to preserve_paths
.A full list of all the changes since 0.5.1 can be found here.
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' => :debug
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.
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 end
You 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 end
Finally, here's a list of the methods that are available to override:
header_title
header_text
footnote_title
footnote_text
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.
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.
#188: list
command 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 list
command.
#166: Added printing of homepage and source to search results.
#177: Added --stat
option to display watchers and forks for pods hosted on GitHub.
#177: Introduced colors and tuned layout of search.
#112: Introduced --push
option 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.
#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_Store
file in ~/.cocoapods
prevents $ pod install
from running.
#134: Match IPHONEOS_DEPLOYMENT_TARGET
build setting with deployment_target
option in generated Pods project file.
#142: Add -fobjc-arc
to OTHER_LDFLAGS
if 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 ibtool
input paths.
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.
Oops, accidentally skipped this version.
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' end
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 end
post_install
hook to the Podfile classThis 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 end
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
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.