CocoaPods Plugin
Use auto
to version your CocoaPod, and push to your specs repository!
Installation
This plugin is not included with the auto
CLI installed via NPM. To install:
npm i --save-dev @auto-it/cocoapods
yarn add -D @auto-it/cocoapods
WARNING: You can only use one "package manager" at a time!
Mixing them will lead to undesired results.
Usage
{
"plugins": [
[
"cocoapods",
{
"podspecPath": "./Test.podspec",
"specsRepo": "https://github.com/intuit/TestSpecs.git",
"flags": ["--sources=https://github.com/SpecRepo.git"],
"podCommand": "bundle exec pod"
}
]
]
}
Or with multiple podspecs:
{
"plugins": [
[
"cocoapods",
{
"podspecPath": ["./Test.podspec", "./Test2.podspec"],
"specsRepo": "https://github.com/intuit/TestSpecs.git",
"flags": ["--sources=https://github.com/SpecRepo.git"],
"podCommand": "bundle exec pod"
}
]
]
}
Requirements
General
- The machine running this plugin must have the CocoaPods
pod
CLI installed already, or podCommand
specified in your plugin configuration. - Your
podspec
file must pass pod lib lint
in order for publishing to a Specs repository to work.
- All warnings and errors must be addressed before attempting to push to a Specs repository.
- Using the logging flags with Auto (
auto -v
, auto -vv
, auto -q
) will also add the verbose or silent flags to the CocoaPod commands.
Pushing to the CocoaPods Trunk
If a specsRepo
is not provided in the plugin options, this plugin will push to the CocoaPods trunk repository. This requires that the machine running this has followed the steps for pushing to trunk, the guide for that can be found here.
Pushing to a private specs repo
If specsRepo
is provided in the configuration, this plugin will add that repo under a temporary name, push to it, and remove the repo from the CocoaPods installation on the machine. The machine that is running the plugin must have the appropriate git credentials to push to that repository.
Note
When pushing to a private Specs repo, this plugin will temporarily create a repository with the name autoPublishRepo
using pod repo add
, and will remove it when the release has completed.