ARTIFACTORY: Why are some CocoaPods packages not downloaded from CocoaPods remote repository but directly from github.com?

AuthorFullName__c
Yonatan Hen, Noffar Levi
articleNumber
000005863
FirstPublishedDate
2023-09-08T20:58:08Z
lastModifiedDate
2025-07-20

ARTIFACTORY: Why are some CocoaPods packages not downloaded from CocoaPods remote repository but directly from github.com?

Description

Sometimes, even after configuring the Artifactory Specs repository in the Podfile, there may be instances where certain CocoaPods packages are downloaded from GitHub instead of the remote registry configured in Artifactory. Due to this behavior artifacts will not be cached in Artifactory and possibly can lead to download failures, as an example, when using CocoaPods smart remote repository in an air-gapped environment.


Mitigation Steps

In order to address this behavior, enable the External Dependencies Enabled option for remote repositories in the Advanced settings. Administration -> Repositories -> Remote Repository -> Advanced Settings. (For Artifactory versions 7.55 and earlier use the Update Repository Configuration REST API).

User-added image

Then, run the command:

pod repo-art update '<cocoapods remote repository name>'


The update command should be resulted in output similar to the below (using pod version 1.12.1):
 

Updating spec repo `cocoapods-remote`
Auto packing the repository in background for optimum performance.
See "git help gc" for manual housekeeping.
[main 872c59091b8] Artifactory repo update specs
 634558 files changed, 642026 insertions(+), 634390 deletions(-)
 create mode 100644 Specs/ACFoundation/1.9.5/ACFoundation.podspec.json
 create mode 100644 Specs/Adiscope-beta/0.0.5/Adiscope-beta.podspec.json
 create mode 100644 Specs/AdisonOfferwallSDK/2.9.22/AdisonOfferwallSDK.podspec.json
 create mode 100644 Specs/AgoraIrisRTC_iOS/4.2.3/AgoraIrisRTC_iOS.podspec.json
 create mode 100644 Specs/AgoraIrisRTC_macOS/4.2.3/AgoraIrisRTC_macOS.podspec.json
 create mode 100644 Specs/AgoraRtcEngine_Special_iOS/4.2.2.131/AgoraRtcEngine_Special_iOS.podspec.json
 create mode 100644 Specs/AgoraRtcEngine_iOS_Preview/4.2.2.133-build.1/AgoraRtcEngine_iOS_Preview.podspec.json
 create mode 100644 Specs/AgoraRtcEngine_macOS_Preview/4.2.2.133-build.1/AgoraRtcEngine_macOS_Preview.podspec.json
 create mode 100644 Specs/AliVCSDK_BasicLive/6.4.0/AliVCSDK_BasicLive.podspec.json
 create mode 100644 Specs/AliVCSDK_InteractiveLive/6.4.0/AliVCSDK_InteractiveLive.podspec.json
 create mode 100644 Specs/AliVCSDK_Premium/6.4.0/AliVCSDK_Premium.podspec.json
 create mode 100644 Specs/AliVCSDK_PremiumLive/6.4.0/AliVCSDK_PremiumLive.podspec.json
 create mode 100644 Specs/AliVCSDK_Standard/6.4.0/AliVCSDK_Standard.podspec.json
 create mode 100644 Specs/AliVCSDK_StandardLive/6.4.0/AliVCSDK_StandardLive.podspec.json
 create mode 100644 Specs/AliVCSDK_UGC/6.4.0/AliVCSDK_UGC.podspec.json


This command updates the specified CocoaPods remote repository.

Lastly, by running the installation command using the verbosity flag, it can be seen the packages downloaded from Artifactory. As an example:
 

pod install --verbose

Output example (downloading the BlinkID package):
-> Installing PPBlinkID (4.9.1)
 > Http download
   $ /usr/bin/curl -f -L -o /var/folders/1c/_y26p04d0xg_q8y9mrhxpqxr0000gn/T/d20230904-30563-1ewgygh/file.tgz
   http://<Artifactory hostname>/artifactory/api/pods/cocoapods-remote/pod/external/https/github.com/BlinkID/blinkid-ios/releases/download/v4.9.1/blinkid-ios_v4.9.1.tar.gz
   --create-dirs --netrc-optional --retry 2 -A 'CocoaPods/1.12.1 cocoapods-downloader/1.6.3' --ssl-no-revoke
     % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                    Dload  Upload   Total   Spent    Left  Speed
   100 91.5M  100 91.5M    0     0  15.0M      0  0:00:06  0:00:06 --:--:-- 16.5M
   $ /usr/bin/tar xf /var/folders/1c/_y26p04d0xg_q8y9mrhxpqxr0000gn/T/d20230904-30563-1ewgygh/file.tgz -C
   /var/folders/1c/_y26p04d0xg_q8y9mrhxpqxr0000gn/T/d20230904-30563-1ewgygh
  > Copying PPBlinkID from `/Users/yonatanh/Library/Caches/CocoaPods/Pods/Release/PPBlinkID/4.9.1-e5b93` to
  `Pods/PPBlinkID`

 

Artifactory logs:


artifactory-access.log:
 

2023-09-04T13:50:45.893Z [1a4e2003cff5095d] [ACCEPTED DEPLOY] cocoapods-remote-cache:external/https/github.com/BlinkID/blinkid-ios/releases/download/v4.9.1/blinkid-ios_v4.9.1.tar.gz  for client : <username> / <server url> [token]

2023-09-04T13:50:45.905Z [1a4e2003cff5095d] [ACCEPTED DOWNLOAD] cocoapods-remote:external/https/github.com/BlinkID/blinkid-ios/releases/download/v4.9.1/blinkid-ios_v4.9.1.tar.gz  for client : <username> / <server url> [token]
artifactory-cocoapods.log:2023-09-04T13:50:43.660Z [jfrt ] [DEBUG] [1a4e2003cff5095d] [ocoaPodsBinariesSubResource:59] [http-nio-8081-exec-6] - Request to fetch pod by url github.com/BlinkID/blinkid-ios/releases/download/v4.9.1/blinkid-ios_v4.9.1.tar.gz



artifactory-request.log:
 

2023-09-04T13:50:50.317Z|1a4e2003cff5095d|<server url>|<username>|GET|/api/pods/cocoapods-remote/pod/external/https/github.com/BlinkID/blinkid-ios/releases/download/v4.9.1/blinkid-ios_v4.9.1.tar.gz|200|-1|96021201|6660|'CocoaPods/1.12.1 cocoapods-downloader/1.6.3'

2023-09-04T13:50:44.334Z [jfrt ] [INFO ] [1a4e2003cff5095d] [o.a.r.HttpRepo:459            ] [http-nio-8081-exec-6] - cocoapods-remote downloading https://github.com/BlinkID/blinkid-ios/releases/download/v4.9.1/blinkid-ios_v4.9.1.tar.gz 91.57 MB



artifactory-request-out.log:
 

2023-09-04T13:50:44.053Z|1a4e2003cff5095d|cocoapods-remote||HEAD|/github-production-release-asset-2e65be/25380381/f274af00-6dcc-11e9-862b-8242fa4f25bf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230904%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230904T135043Z&X-Amz-Expires=300&X-Amz-Signature=8da8ab5030ff13302f66954f4f3787d1d5c785683a922992dd535851c33ca1da&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=25380381&response-content-disposition=attachment%3B%20filename%3Dblinkid-ios_v4.9.1.tar.gz&response-content-type=application%2Foctet-stream|200|0|96021201|216

2023-09-04T13:50:44.238Z|1a4e2003cff5095d|cocoapods-remote||GET|https://github.com/BlinkID/blinkid-ios/releases/download/v4.9.1/blinkid-ios_v4.9.1.tar.gz|302|0|0|179

2023-09-04T13:50:44.333Z|1a4e2003cff5095d|cocoapods-remote||GET|/github-production-release-asset-2e65be/25380381/f274af00-6dcc-11e9-862b-8242fa4f25bf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230904%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230904T135044Z&X-Amz-Expires=300&X-Amz-Signature=3cffa7254410a70fb153b7cdc5ddfd9a29678a754af0f50174d645aec0699285&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=25380381&response-content-disposition=attachment%3B%20filename%3Dblinkid-ios_v4.9.1.tar.gz&response-content-type=application%2Foctet-stream|200|0|96021201|94



artifactory-service.log:
 

2023-09-04T13:50:44.334Z [jfrt ] [INFO ] [1a4e2003cff5095d] [o.a.r.HttpRepo:459            ] [http-nio-8081-exec-6] - cocoapods-remote downloading https://github.com/BlinkID/blinkid-ios/releases/download/v4.9.1/blinkid-ios_v4.9.1.tar.gz 91.57 MB

2023-09-04T13:50:45.898Z [jfrt ] [INFO ] [1a4e2003cff5095d] [o.a.r.HttpRepo:472            ] [http-nio-8081-exec-6] - cocoapods-remote downloaded  https://github.com/BlinkID/blinkid-ios/releases/download/v4.9.1/blinkid-ios_v4.9.1.tar.gz 91.57 MB at 59,995.76 KB/sec


*The packages that Github retrieves from an external provider, should be cached under the ‘external’ folder in the CocoaPods remote cache repository after running the ‘pod install’ command. For example:


User-added image


For more information, refer to the CocoaPods repositories documentation, and the “cocoapods-art” plugin page in GitHub.