Настройка CocoaPods

OSA Proxy поддерживает CocoaPods CDN, сканирование .podspec.json и проверку скачиваемых архивов для источников типа source.http.

Настройка OSA Proxy

cocoapods:
  enabled: true
  repository:
    - name: cocoapods
      registry: https://cdn.cocoapods.org
      scan-manifest: true
      scan-package: true
      work-mode: strict_wait
      additional-packages-registries:
        dl.google.com: https://dl.google.com

dl.google.com в примере — только один из возможных hosts, а не полный список для cdn.cocoapods.org. CocoaPods CDN хранит podspec-метаданные, но адрес артефакта задаёт автор каждого pod в поле source. Поэтому фиксированного или исчерпывающего списка artifact hosts не существует, и со временем он может меняться.

В additional-packages-registries укажите соответствие host и upstream URL для всех source.http, которые используются разрешёнными в вашей организации pods. Например, для URL https://example.com/releases/SDK.zip добавьте example.com: https://example.com. OSA Proxy переписывает через маршрут пакетного сканирования только source.http с перечисленных hosts. Источники git, svn и hg, а также неизвестные hosts остаются прямыми клиентскими загрузками.

Полнота списка

Если host отсутствует в additional-packages-registries, CocoaPods скачает артефакт напрямую, и scan-package: true в OSA Proxy не проверит этот файл. Формируйте список по podspec используемых зависимостей и обновляйте его при добавлении новых pods или версий.

Подключение CocoaPods

Укажите маршрут OSA Proxy как CDN source в Podfile:

source 'https://osa-proxy.example.com/cocoapods'

target 'ExampleApp' do
  pod 'Google-Mobile-Ads-SDK', '13.7.0'
end

Затем выполните обычную установку:

pod install --repo-update

Поведение блокировки

Служебные CDN-индексы CocoaPods-version.yml, all_pods.txt и all_pods_versions_*.txt проходят через OSA Proxy без сканирования и изменения. Проверка манифеста выполняется при запросе конкретного .podspec.json.

Если версия заблокирована политикой CodeScoring, OSA Proxy блокирует выдачу её .podspec.json целиком. CocoaPods не предоставляет совместимого поля, которым можно пометить версию как запрещённую и оставить её доступной для клиента. Поэтому параметр remove-blocked-versions для CocoaPods не поддерживается, в том числе режим false.

Если podspec разрешён и содержит source.http с host из additional-packages-registries, OSA Proxy переписывает ссылку через себя. При scan-package: true архив проверяется до передачи CocoaPods.

Страница была полезна?