## TL;DR
Restore the Specs repository source the Podfile expects: re-add the correct source lines, run pod install with repo update, or migrate the missing spec repo to trunk or a private source that still exists. Release CI often runs in a clean environment where a developers local pod setup, cached spec repos and git credentials are absent, so make the Podfile sources explicit and pinned in the repository.

```text
spec repo not found - CocoaPods install during release build
```

## Use this when
- pod install fails in CI release builds with spec repo not found.
- A private spec repo was moved, renamed or deleted.
- The Podfile references a source URL that no longer resolves.

## Not for this skill when
- A specific pod is not found while the repo itself loads. That is a pod name or version problem.
- You use Swift Package Manager only. There is no spec repo in that flow.

## Steps
1. Read the failing source name or URL in the pod install output and check it against the sources declared at the top of the Podfile. Verify: the missing repo and its declared URL are identified
2. Test whether that URL still exists by cloning it in a scratch folder or opening it in the source host UI. Verify: the repo is confirmed reachable, moved or gone
3. If it moved, update the Podfile source to the new URL; if it is the public specs repo, replace it with the trunk CDN source line most projects now use. Verify: the Podfile sources match live repositories
4. Run pod install with repo update locally and commit the regenerated Podfile.lock. Verify: install completes and the lockfile updates
5. Give CI the credentials it needs for any private spec repo, using its secret store rather than a developers keychain. Verify: the CI job clones the private source successfully in its log
6. Run the full release build in CI. Verify: pod install and the archive both complete in the clean environment
7. Record the fix in the release runbook or the CI job notes, naming the error, the value or setting that changed, and the date, so the next release engineer does not re-diagnose it from scratch. Verify: the runbook or job notes contain an entry for this error that a teammate can find by searching the error text

## Why it happens
CocoaPods resolves pods against spec repositories listed in the Podfile. The public specs moved from a giant git repo to a CDN trunk years ago, and private spec repos move with team reorganisations. A workstation hides the problem because its local pod setup caches spec repos for years; a clean CI checkout exposes every stale source at once.

In practice this failure is rarely a one-off. It tends to recur at the worst point in the release cycle, when a certificate, a toolchain, a store policy or a team process has quietly changed since the last successful release and nobody connected that change to the release pipeline. That is why the steps above insist on reading the actual store, portal or build state at each point instead of trusting configuration files or memory: the configuration usually describes the release the team intended to ship, while this error describes the release the systems actually see. Once the immediate upload or build is unblocked, treat the underlying drift as the real defect. Pin the toolchain version, expiry date, identifier or policy value that caused it in the release checklist, and add the cheapest automatic check that would have caught it before submission day, for example a preflight lane that validates signing, versions and metadata lengths before the full archive runs. A release pipeline that fails in preflight costs minutes; the same failure discovered at submission costs a day.

## Variants and edge cases
### pod install spec repo not found CI
CI phrasing; make sources explicit in the Podfile. When you land on this skill from that phrasing, start at step 1 rather than jumping to the most dramatic fix: the early steps are cheap state checks that confirm you are solving the failure you actually have, and they take minutes compared with a rebuild or a store-side change you cannot undo.
### CocoaPods spec repo not found private pods
Private repo variant; fix the URL and CI credentials together. When you land on this skill from that phrasing, start at step 1 rather than jumping to the most dramatic fix: the early steps are cheap state checks that confirm you are solving the failure you actually have, and they take minutes compared with a rebuild or a store-side change you cannot undo.
### Edge case: CDN trunk propagation
A just-published private pod version may take minutes to appear on the CDN. A short wait and repo update resolves phantom not-found errors. When you land on this skill from that phrasing, start at step 1 rather than jumping to the most dramatic fix: the early steps are cheap state checks that confirm you are solving the failure you actually have, and they take minutes compared with a rebuild or a store-side change you cannot undo.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_D_ydwPDp-nCIhzYTbUl1Wg
