To install or update CocoaPods see this guide.
To install release candidates run [sudo] gem install cocoapods --pre
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.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 resource bundles for not build targets.
Boris Bügling
#2934
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 :memo: 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
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 :memo: 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 :memo: 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 :memo: 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 :memo: 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 :memo: 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 :memo: 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 :memo: 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 :memo: 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 :memo: 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.