Bot releases are hidden (Show)
Published by segiddins almost 10 years ago
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.
Published by segiddins almost 10 years ago
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.xcodebuild
:path
.pod install
would crash during Plist building if anypod spec create
as an argument.pod lib lint
would crash if a podspec couldn't bepod init
would not add source 'master'
to newlyThe 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
pod repo push
to first check if a Specs directory exists and if sopod outdated
to not include subspecs.:path
and that pod's podspec usespod init
so that it doesn't recurse when checking for Podfiles.ARCHS
.OTHER_LDFLAGS
of xcconfigs to avoidPublished by segiddins almost 10 years ago
:head
flag. #392
$HOME/local/lib
work. #396
Published by segiddins almost 10 years ago
pod spec lint http://raw/file.podspec
.Spec create template
.pod spec lint
.Published by segiddins almost 10 years ago
A full list of all the changes since 0.5.1 can be found [here][6].
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.
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
][5] 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.
list
command nowlist
command.--stat
--push
$ pod setup
. It configures the master spec repository to use the private$ pod setup
.$ pod setup
.set_arc_compatibility_flag!
to your Podfile..DS_Store
file in ~/.cocoapods
prevents $ pod install
from running.IPHONEOS_DEPLOYMENT_TARGET
build setting with deployment_target
option in-fobjc-arc
toOTHER_LDFLAGS
if any pods require ARC.ibtool
input paths.Published by segiddins almost 10 years ago
Published by segiddins almost 10 years ago
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][7].
Published by segiddins almost 10 years ago
pod outdated
.Podfile
) are downloadedpod install/update
while the Xcode projectOTHER_LIBTOOLFLAGS
instead of OTHER_LDFLAGS
, thusPublished by segiddins almost 10 years ago
pod outdated
show what running pod update
will do.Podfile
.GCC_PREPROCESSOR_DEFINITION
flag ${inherited}
Validator
to only use specific sources.pod spec lint
and pod lib lint
,master
.Podfile
runningpod outdated
.source
directive.pod install
with an empty target that inherits aPublished by segiddins almost 10 years ago
pod lib lint
would crash if a podspec couldn't bepod init
would not add source 'master'
to newlyThe 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
pod repo push
to first check if a Specs directory exists and if sopod outdated
to not include subspecs.:path
and that pod's podspec usespod init
so that it doesn't recurse when checking for Podfiles.ARCHS
.OTHER_LDFLAGS
of xcconfigs to avoidPublished by segiddins almost 10 years ago
.git
in repository URLs whenPublished by segiddins almost 10 years ago
pod spec lint
for json
podspecs.json
podspecs.--no-ansi
flag in help banners.Published by segiddins almost 10 years ago
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
pod repo push
to first check if a Specs directory exists and if sopod outdated
to not include subspecs.:path
and that pod's podspec usespod init
so that it doesn't recurse when checking for Podfiles.ARCHS
.OTHER_LDFLAGS
of xcconfigs to avoidPublished by segiddins almost 10 years ago
pre_install
and the pod_install
hooks of the specificationAdded 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
pod outdated
.pod repo update
may start an un-committed merge.Published by segiddins almost 10 years ago
default_subspec
attribute in nested subspecs.Published by segiddins almost 10 years ago
pod update [POD_NAMES...]
.pod update
prints the previous version of the updated pods.pod update
falls back to pod install
if no Lockfile is present.deprecated
and deprecated_in_favor_of
attributes to Specificationframework
and library
attributes for invalidrequries_arc
attribute.resource_bundle
attribute.pod lib create
is now using the configure
file instead of the_CONFIGURE.rb
file.pod lib create
now disallows any pod name that begins with a .
pod
commands as root.default_subspec
attribute in nested subspecs.Published by segiddins almost 10 years ago
pod list
.pod spec
CDPATH
env variable before shelling-out to prepare_command
.pod repo
subcommands.:head
option is not supported for a givens.version
as the :tag
for a git repository in arequires_arc
attribute no longer passes the-isystem
compiler flag of the aggregate