Артем Ворхлик @artemVorkhlik
IOS Developer
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Mobile Application Developer
Middle
iOS development
SWIFT
Bash
Python
CI/CD
В таком случае помимо флага
:path
нужно будет прописывать еще путь до подспеки:podspec
, так как при использовании только одного:path
требуется, чтобы в папке AFNetworking находился файл.podspec или .podspec.json для этого Пода.Можно вручную поместить подспеку в эту папку, но после последующего обновления версии Cocoapods перепишет полностью эту папку, удалив подпеку. Лучше создать папку для локальных подспек и указать к ней путь:
pod 'AFNetworking', :path => 'Pods/AFNetworking', :podspec => 'Pods/LocalPodspecs/AFNetworking.podspec.json'
Только опять-таки при таком подходе мы имеем дело напрямую с подспеками из GitHub репы, причем нужно еще вручную их перетаскивать и обновлять с переходом на новую версию. Более того возникнут неудобства с обновлением версии. И нельзя будет указывать версию в Podfile, если стоят флаги :path и :podspec ( например, pod 'AFNetworking', '3.0.0', ... ), версия будет читаться из version в podspec. И чтобы обновить версию Пода нужно будет: удалить параметры :path и :podspec, вместо них прописать нужную версию, установить через pod install, вернуть обратно :path и :podspec, взять новую подспеку для новой версии, обновить ею старую.
Так или иначе нет возможности выполнить pod install без подспек для каждого Пода. Конечно можно что-нибудь придумать и автоматизировать описанный метод с флагами и хранить в проекте подспеки вместе с Подами в "чистом" виде, а не в одном zip. А может кому-то приглянется мой способ, рассмотренный в статье.
Действительно в Podfile можно указать пути к своему репозиторию со specs и sources, например:
При отсутствии интернета можно создать в своем закрытом окружении такой репозиторий со всеми подспеками и обращаться к нему кажды раз на CI. Но при добавлении новых подов в проект нужно будет обновлять такой репозитория новыми подспеками, держать его всегда актуальным.
Мой подход предлагает хранить все нужные подспеки в проекте, благодаря чему pod install не нужно будет никуда обращаться для скачивания, и не нужно создавать свои репозитории