Set Up Remote CocoaPods Repositories

JFrog Artifactory Documentation

ft:sourceType
Paligo

The public CocoaPods Specs repo does not contain any actual binary packages; it is a git repository containing podspec.json files pointing from a package name and version to its storage endpoint.

Since the majority of the packages are hosted on GitHub, you need to create a Remote Repository which serves as a caching proxy for github.com. If necessary, you can do the same for bitbucket.org or any other remote repository you want to access.

Working with Stash with a version lower than 5.1?

If your packages are hosted on Bitbucket (formerly Stash), you need to ensure that the Stash Archive Plugin is installed on your Bitbucket server.

Artifacts (such as tar.gz files) requested from a remote repository are cached on demand. You can remove downloaded artifacts from the remote repository cache, however you can not manually deploy artifacts to a remote repository.

To define a remote repository to proxy github.com as well as the public Specs repo follow the steps below:

  1. Create a new remote repository and set CocoaPods to be its Package Type

  2. Set the Repository Key value, and enter https://github.com in the URL field as displayed below

    CocoaPodsRemoteRepository.jpg
  3. In the CocoaPods Settings section, select GitHub as the Git Provider, and leave the default Registry URL ( https://github.com/CocoaPods/Specs).

    Finally, click "Save & Finish"

    CocoaPodsSettings.jpg

Specs Repo URL

Usually, you will point the Specs Repo URL field at the public Specs repo as displayed above.

However, if you are using a private Specs repo - set the URL to be the same as the the one configured in the URL field.

If the remote URL is an Artifactory instance you need to append it's url with /api/pods/<repo> i.e. http://art-prod.company.com/artifactory/api/pods/pods-local

Private Bitbucket server

Working with a private Bitbucket server? set the "Git Provider" to be Stash, and not Bitbucket. The public Bitbucket endpoint answers some API calls that a private Bitbucket server doesn't, hence, it is important to set the Git Provider to be Stash when working with a private Bitbucket server. In this case, the URL field should be the root of your Bitbucket server, and the Specs Repo URL should be the full URL to the Specs repo in Bitbucket.