In order to use CocoaPods with Artifactory, you need the cocoapods-art plugin which presents Artifactory repositories as Specs repos and pod sources.
You can download the cocoapods-art plugin as a Gem, and its sources can be found on GitHub.
To use Artifactory with CocoaPods, execute the following steps:
Install the cocoapods-art plugin:
gem install cocoapods-art
Using Homebrew?
We recommend installing both the CocoaPods client and the cocoapod-art plugin as gems. Installing with Homebrew may cause issues with the CocoaPods hooks mechanism that the plugin relies on.
The next step is to add an Artifactory repository by using the pod 'repo-art add' command:
pod repo-art add <local_specs_repo_name> http://localhost:8081/artifactory/api/pods/<repository_key>
Once the repository is added, add the following in yourPodfile:
Adding an Artifactory source in the Podfile
plugin 'cocoapods-art', :sources => [ '<local_specs_repo_name>' ]
Working without the Master repository?
If you have removed the CocoaPods Master repository from your system, due to a known issue with the CocoaPods stats plugin, you need to add the following to your Podfile, or add the corresponding variable to your environment:
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
For details, please refer to JFrog Jira
Where the local repo name is the name you gave the specs repo locally when adding it.
pod repo-art commands
The cocoapods-art plugin exposes most commands that are normally invoked with pod repo (i.e. add, update, list etc.).Use pod repo-art instead of pod repo whenever dealing with Artifactory-backed Specs repositories.
CocoaPods local Specs repos location
~/.cocoapods/repos
Once the pod command line tool is configured, every pod install
command will fetch pods from the CocoaPods repository specified above.
Synchronize the cocoapods-art Plugin's Repositories With Artifactory
As opposed to the cocoapods client's default behavior, the cocoapods-art plugin does not automatically update its index whenever you run client commands (such as install). To keep your plugin's index synchronized with your CocoaPods repository, you need to update it by executing the following command:
pod repo-art update