Pull to refresh
1
0
Артем Ворхлик @artemVorkhlik

IOS Developer

Send message

В таком случае помимо флага :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, например:

source 'https://github.com/artsy/Specs.git' 
source 'https://cdn.cocoapods.org/'

При отсутствии интернета можно создать в своем закрытом окружении такой репозиторий со всеми подспеками и обращаться к нему кажды раз на CI. Но при добавлении новых подов в проект нужно будет обновлять такой репозитория новыми подспеками, держать его всегда актуальным.

Мой подход предлагает хранить все нужные подспеки в проекте, благодаря чему pod install не нужно будет никуда обращаться для скачивания, и не нужно создавать свои репозитории

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Mobile Application Developer
Middle
iOS development
SWIFT
Bash
Python
CI/CD